docs.unity3d.com
    Show / Hide Table of Contents

    Class NavMeshSurface

    Component used for building and enabling a NavMesh surface for one agent type.

    Inheritance
    Object
    Object
    Component
    Behaviour
    MonoBehaviour
    NavMeshSurface
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(String, Single)
    MonoBehaviour.InvokeRepeating(String, Single, Single)
    MonoBehaviour.CancelInvoke(String)
    MonoBehaviour.IsInvoking(String)
    MonoBehaviour.StartCoroutine(String)
    MonoBehaviour.StartCoroutine(String, Object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    UnityEngine.MonoBehaviour.StartCoroutine_Auto(System.Collections.IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(String)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(Object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.didStart
    MonoBehaviour.didAwake
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    UnityEngine.Component.GetComponent<T>()
    UnityEngine.Component.TryGetComponent(System.Type, UnityEngine.Component)
    UnityEngine.Component.TryGetComponent<T>(T)
    Component.GetComponent(String)
    Component.GetComponentInChildren(Type, Boolean)
    Component.GetComponentInChildren(Type)
    UnityEngine.Component.GetComponentInChildren<T>(System.Boolean)
    UnityEngine.Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, Boolean)
    UnityEngine.Component.GetComponentsInChildren(System.Type)
    UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean)
    UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean, System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentsInChildren<T>()
    UnityEngine.Component.GetComponentsInChildren<T>(System.Collections.Generic.List<T>)
    Component.GetComponentInParent(Type, Boolean)
    Component.GetComponentInParent(Type)
    UnityEngine.Component.GetComponentInParent<T>(System.Boolean)
    UnityEngine.Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, Boolean)
    UnityEngine.Component.GetComponentsInParent(System.Type)
    UnityEngine.Component.GetComponentsInParent<T>(System.Boolean)
    UnityEngine.Component.GetComponentsInParent<T>(System.Boolean, System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    UnityEngine.Component.GetComponents(System.Type, System.Collections.Generic.List<UnityEngine.Component>)
    UnityEngine.Component.GetComponents<T>(System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponents<T>()
    Component.CompareTag(String)
    Component.CompareTag(TagHandle)
    Component.SendMessageUpwards(String, Object, SendMessageOptions)
    Component.SendMessageUpwards(String, Object)
    Component.SendMessageUpwards(String)
    Component.SendMessageUpwards(String, SendMessageOptions)
    Component.SendMessage(String, Object)
    Component.SendMessage(String)
    Component.SendMessage(String, Object, SendMessageOptions)
    Component.SendMessage(String, SendMessageOptions)
    Component.BroadcastMessage(String, Object, SendMessageOptions)
    Component.BroadcastMessage(String, Object)
    Component.BroadcastMessage(String)
    Component.BroadcastMessage(String, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    UnityEngine.Object.GetHashCode()
    UnityEngine.Object.Equals(System.Object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, Boolean)
    UnityEngine.Object.Instantiate<T>(T)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform, System.Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, Boolean)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    UnityEngine.Object.DestroyObject(UnityEngine.Object, System.Single)
    UnityEngine.Object.DestroyObject(UnityEngine.Object)
    UnityEngine.Object.FindSceneObjectsOfType(System.Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    UnityEngine.Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsInactive, UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    UnityEngine.Object.FindFirstObjectByType<T>()
    UnityEngine.Object.FindAnyObjectByType<T>()
    UnityEngine.Object.FindFirstObjectByType<T>(UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindAnyObjectByType<T>(UnityEngine.FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, Boolean)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Unity.AI.Navigation
    Syntax
    [ExecuteAlways]
    [DefaultExecutionOrder(-102)]
    [AddComponentMenu("Navigation/NavMeshSurface", 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
    Int32

    buildHeightMesh

    Gets or sets whether the NavMesh building process produces more detailed elevation information.

    Declaration
    public bool buildHeightMesh { get; set; }
    Property Value
    Type Description
    Boolean
    See Also
    https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.0/manual/NavMeshSurface.html#advanced-settings

    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
    Int32
    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
    https://docs.unity3d.com/Manual/nav-AreasAndCosts.html

    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
    Boolean
    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
    Boolean
    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
    Single
    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
    Boolean

    overrideVoxelSize

    Gets or sets whether the NavMesh building process uses the voxelSize value.

    Declaration
    public bool overrideVoxelSize { get; set; }
    Property Value
    Type Description
    Boolean

    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
    Int32
    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
    Single
    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.

    Back to top
    Copyright © 2023 Unity Technologies
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on Thursday, October 19, 2023