Class NavMeshSurface
Component used for building and enabling a NavMesh surface for one agent type.
Inherited Members
Namespace: Unity.AI.Navigation
Assembly: Unity.AI.Navigation.dll
Syntax
[ExecuteAlways]
[DefaultExecutionOrder(-102)]
[AddComponentMenu("Navigation/NavMesh Surface", 30)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.ai.navigation@2.0/manual/NavMeshSurface.html")]
public class NavMeshSurface : MonoBehaviour
Properties
activeSurfaces
Gets the list of all the NavMeshSurface components that are currently active in the scene.
Declaration
public static List<NavMeshSurface> activeSurfaces { get; }
Property Value
Type | Description |
---|---|
List<NavMeshSurface> |
agentTypeID
Gets or sets the identifier of the agent type that will use this NavMesh Surface.
Declaration
public int agentTypeID { get; set; }
Property Value
Type | Description |
---|---|
int |
buildHeightMesh
Gets or sets whether the NavMesh building process produces more detailed elevation information.
Declaration
public bool buildHeightMesh { get; set; }
Property Value
Type | Description |
---|---|
bool |
See Also
center
Gets or sets the center position of the volume that delimits the NavMesh created by this component.
Declaration
public Vector3 center { get; set; }
Property Value
Type | Description |
---|---|
Vector3 |
Remarks
It is used only when collectObjects
is set to Volume
. The position applies in the local space of the GameObject.
collectObjects
Gets or sets the method for retrieving the objects that will be used for baking.
Declaration
public CollectObjects collectObjects { get; set; }
Property Value
Type | Description |
---|---|
CollectObjects |
defaultArea
Gets or sets the area type assigned to any object that does not have one specified.
Declaration
public int defaultArea { get; set; }
Property Value
Type | Description |
---|---|
int |
Remarks
To customize the area type of an object add a NavMeshModifier component and set overrideArea to true
. The area type information is used when baking the NavMesh.
See Also
ignoreNavMeshAgent
Gets or sets whether the process of building the NavMesh ignores the GameObjects containing a NavMeshAgent component.
Declaration
public bool ignoreNavMeshAgent { get; set; }
Property Value
Type | Description |
---|---|
bool |
Remarks
There is generally no need for the NavMesh to take into consideration the objects that can move.
ignoreNavMeshObstacle
Gets or sets whether the process of building the NavMesh ignores the GameObjects containing a NavMeshObstacle component.
Declaration
public bool ignoreNavMeshObstacle { get; set; }
Property Value
Type | Description |
---|---|
bool |
Remarks
There is generally no need for the NavMesh to take into consideration the objects that can move.
layerMask
Gets or sets a bitmask representing which layers to consider when selecting the objects that will be used for baking the NavMesh.
Declaration
public LayerMask layerMask { get; set; }
Property Value
Type | Description |
---|---|
LayerMask |
minRegionArea
Gets or sets the minimum acceptable surface area of any continuous portion of the NavMesh.
Declaration
public float minRegionArea { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
This parameter is used only at the time when the NavMesh is getting built. It allows you to cull away any isolated NavMesh regions that are smaller than this value and that do not straddle or touch a tile boundary.
navMeshData
Gets or sets the reference to the NavMesh data instantiated by this surface.
Declaration
public NavMeshData navMeshData { get; set; }
Property Value
Type | Description |
---|---|
NavMeshData |
overrideTileSize
Gets or sets whether the NavMesh building process uses the tileSize value.
Declaration
public bool overrideTileSize { get; set; }
Property Value
Type | Description |
---|---|
bool |
overrideVoxelSize
Gets or sets whether the NavMesh building process uses the voxelSize value.
Declaration
public bool overrideVoxelSize { get; set; }
Property Value
Type | Description |
---|---|
bool |
size
Gets or sets the size of the volume that delimits the NavMesh created by this component.
Declaration
public Vector3 size { get; set; }
Property Value
Type | Description |
---|---|
Vector3 |
Remarks
It is used only when collectObjects
is set to Volume
. The size applies in the local space of the GameObject.
tileSize
Gets or sets the width of the square grid of voxels that the NavMesh building process uses for sampling the scene geometry.
Declaration
public int tileSize { get; set; }
Property Value
Type | Description |
---|---|
int |
Remarks
This value represents a number of voxels. Together with voxelSize it determines the real size of the individual sections that comprise the NavMesh.
useGeometry
Gets or sets which type of component in the GameObjects provides the geometry used for baking the NavMesh.
Declaration
public NavMeshCollectGeometry useGeometry { get; set; }
Property Value
Type | Description |
---|---|
NavMeshCollectGeometry |
voxelSize
Gets or sets the width of the square voxels that the NavMesh building process uses for sampling the scene geometry.
Declaration
public float voxelSize { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
This value is in world units. Together with tileSize it determines the real size of the individual sections that comprise the NavMesh.
Methods
AddData()
Creates an instance of the NavMesh data and activates it in the navigation system.
Declaration
public void AddData()
Remarks
The instance is created at the position and with the orientation of the GameObject.
BuildNavMesh()
Builds and instantiates this NavMesh surface.
Declaration
public void BuildNavMesh()
GetBuildSettings()
Retrieves a copy of the current settings chosen for building this NavMesh surface.
Declaration
public NavMeshBuildSettings GetBuildSettings()
Returns
Type | Description |
---|---|
NavMeshBuildSettings | The settings configured in this NavMeshSurface. |
RemoveData()
Removes the instance of this NavMesh data from the navigation system.
Declaration
public void RemoveData()
Remarks
This operation does not destroy the navMeshData.
UpdateNavMesh(NavMeshData)
Rebuilds parts of an existing NavMesh in the regions of the scene where the objects have changed.
Declaration
public AsyncOperation UpdateNavMesh(NavMeshData data)
Parameters
Type | Name | Description |
---|---|---|
NavMeshData | data | The NavMesh to update according to the changes in the scene. |
Returns
Type | Description |
---|---|
AsyncOperation | A reference to the asynchronous coroutine that builds the NavMesh. |
Remarks
This operation is executed asynchronously.