Class NavmeshBase Extends NavGraph, INavmeshHolder, ITransformedGraph, IRaycastableGraph

Public Abstract

Base class for RecastGraph and NavMeshGraph.

Public Methods

Returns a new transform which transforms graph space to world space.

ClearTiles (tileRect)

Clears the tiles in the specified rectangle.

End batch updating of tiles.

GetTile (x, z)

Tile at the specified x, z coordinate pair.

Returns a bounds object with the bounding box of a group of tiles.

Returns an XZ bounds object with the bounds of a group of tiles in graph space.

...

All tiles.

GetTouchingTiles (bounds, margin=0)

Returns a rect containing the indices of all tiles touching the specified bounds.

Returns a rect containing the indices of all tiles touching the specified bounds.

GetVertex (index)

Vertex coordinate for the specified vertex index.

Vertex coordinate in graph space for the specified vertex index.

Linecast (..., end, ...)

Returns if there is an obstacle between...

NearestNodeDistanceSqrLowerBound (position, constraint)

Lower bound on the squared distance from the given point to the closest node in this graph.

OnDrawGizmos (gizmos, drawNodes, redrawScope)

Draw gizmos for the graph.

PointOnNavmesh (position, constraint)

Finds the first node which contains position.

RandomPointOnSurface (nnConstraint=null, highQuality=true)

A random point on the graph.

Moves the nodes in this graph.

ReplaceTile (x, z, verts, tris, [tags], [tryPreserveExistingTagsAndPenalties])

Replace tile at index with nodes created from specified navmesh.

StartBatchTileUpdate (exclusive=…)

Start batch updating of tiles.

Public Static Methods

GetTileIndex (index)

Tile index from a vertex index.

Public Variables

MaxTileConnectionEdgeDistance

Maximum (vertical) distance between the sides of two nodes for them to be connected across a tile edge.

Public Abstract
NavmeshCuttingCharacterRadius
OnRecalculatedTiles

Called when tiles have been completely recalculated.

Public
RecalculateNormals

Determines how normals are calculated.

Public Abstract
TileWorldSizeX

Size of a tile in world units along the X axis.

Public Abstract
TileWorldSizeZ

Size of a tile in world units along the Z axis.

Public Abstract
enableNavmeshCutting

Should navmesh cuts affect this graph.

Public
forcedBoundsSize

Size of the bounding box.

Public
isScanned

True if the graph has been scanned and contains nodes.

Public
navmeshUpdateData

Handles navmesh cutting.

showMeshOutline

Show an outline of the polygons in the Unity Editor.

Public
showMeshSurface

Show the surface of the navmesh.

Public
showNodeConnections

Show the connections between the polygons in the Unity Editor.

Public
tileXCount

Number of tiles along the X-axis.

Public
tileZCount

Number of tiles along the Z-axis.

Public
transform

Determines how the graph transforms graph space to world space.

Public

Public Static Variables

TileIndexMask
Public Static
TileIndexOffset
Public Static
VertexIndexMask
Public Static

Inherited Public Members

Number of nodes in the graph.

GetNearest (position, [...])

...

GetNodes (action)

Calls a delegate with all nodes in the graph...

IsInsideBounds (point)

True if the point is inside the bounding box of this graph.

IsPointOnNavmesh (position)

True if the point is on a walkable part of the navmesh, as seen from above.

Scan ()

Scan the graph.

Snapshot (bounds)

Captures a snapshot of a part of the graph, to allow restoring it later.

active

Reference to the AstarPath object in the scene.

Public
bounds

World bounding box for the graph.

Public
drawGizmos

Enable to draw gizmos in the Unity scene view.

Public
graphIndex

Index of the graph, used for identification purposes.

Public
guid

Used as an ID of the graph, considered to be unique.

Public
infoScreenOpen

Used in the editor to check if the info screen is open.

Public
initialPenalty

Default penalty to apply to all nodes.

Public
name

Name of the graph.

Public
open

Is the graph open in the editor.

Public
persistent

True if the graph will be included when serializing graph data.

Public
showInInspector

True if the graph should be visible in the editor.

Public

Private/Protected Members

Throws an exception if it is not safe to update internal graph data right now.

ClearTile (x, z, replacement)

Clear the tile at the specified coordinate.

ConnectTileWithNeighbours (tile, onlyUnflagged=…)
ConnectTiles (tile1, tile2, tileWorldSizeX, tileWorldSizeZ, maxTileConnectionEdgeDistance)

Generate connections between the two tiles.

CreateNavmeshOutlineVisualization (tiles, startTile, endTile, helper)

Creates an outline of the navmesh for use in OnDrawGizmos in the editor.

CreateNavmeshSurfaceVisualization (tiles, startTile, endTile, helper)

Creates a mesh of the surfaces of the navmesh for use in OnDrawGizmos in the editor.

CreateNodeConnections (nodes, keepExistingConnections)

Create connections between all nodes.

CreateNodes (tile, tris, tileIndex, graphIndex, tags, initializeNodes, astar, initialPenalty, tryPreserveExistingTagsAndPenalties)

Deserializes graph type specific node data.

Destroys all nodes in the graph.

DestroyNodes (nodes)

Destroy several nodes simultaneously.

DirtyBounds (bounds)

Notifies the system that changes have been made inside these bounds.

Cleans up any unmanaged data that the graph has.

DrawUnwalkableNodes (gizmos, size, redrawScope)

Fills graph with tiles created by NewEmptyTile.

LinecastShapeEdgeLookup

Used to optimize linecasts by precomputing some values.

Private Static Readonly
NNConstraintNoneXZ

Cached NNConstraint.None with distanceXZ=true to reduce allocations.

Private Static Readonly
NewEmptyTile (x, z)

Creates a single new empty tile.

Function for cleaning up references.

Called after all deserialization has been done for all graphs.

PrepareNodeRecycling (x, z, verts, tris, recycledNodeBuffer)

Reuse nodes that keep the exact same vertices after a tile replacement.

ReplaceTilePostCut (x, z, verts, tris, tags, tryPreserveExistingTagsAndPenalties=true, preservePreCutData=…)
ScanInternal ([...])

Internal method to scan the graph.

Serializes Node Info.

TryConnect (tileIdx1, tileIdx2)
batchNodesToDestroy

List of nodes that are going to be destroyed as part of a batch update.

Private
batchPendingNavmeshCutting

True if the current batch of tile updates requires navmesh cutting to be done.

Private
batchTileUpdate

Positive if currently updating tiles in a batch.

Private
batchUpdatedTiles

List of tiles updating during batch.

Private
exists

True if the graph exists, false if it has been destroyed.

Internal
nodeRecyclingHashBuffer

Temporary buffer used in PrepareNodeRecycling.

Private
tiles

All tiles.

Protected
transform
Private

Deprecated Members

nearestSearchOnlyXZ

Perform nearest node searches in XZ space only.

Public