docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class NavMeshLink

    Component used to create a navigable link between two NavMesh locations.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    NavMeshLink
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(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)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.GetComponentIndex()
    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()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.AI.Navigation
    Assembly: Unity.AI.Navigation.dll
    Syntax
    [ExecuteAlways]
    [DefaultExecutionOrder(-101)]
    [AddComponentMenu("Navigation/NavMesh Link", 33)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.ai.navigation@2.0/manual/NavMeshLink.html")]
    public class NavMeshLink : MonoBehaviour

    Properties

    activated

    Gets or sets whether the link can be traversed by agents.

    Declaration
    public bool activated { get; set; }
    Property Value
    Type Description
    bool
    Remarks

    When this property is set to true it allows the agents to traverse the link. When the value is false no paths pass through this link and no agent can traverse it as part of their autonomous movement.

    agentTypeID

    Gets or sets the type of agent that can use the link.

    Declaration
    public int agentTypeID { get; set; }
    Property Value
    Type Description
    int

    area

    The area type of the link.

    Declaration
    public int area { get; set; }
    Property Value
    Type Description
    int

    autoUpdate

    Gets or sets whether the world positions of the link's edges update whenever the GameObject transform, the startTransform or the endTransform change at runtime.

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

    autoUpdatePositions

    Gets or sets whether the world positions of the link's edges update whenever the GameObject transform, the start transform or the end transform change at runtime.

    Declaration
    [Obsolete("autoUpdatePositions has been deprecated. Use autoUpdate instead. (UnityUpgradable) -> autoUpdate")]
    public bool autoUpdatePositions { get; set; }
    Property Value
    Type Description
    bool

    biDirectional

    Gets or sets whether agents can traverse the link in both directions.

    Declaration
    [Obsolete("biDirectional has been deprecated. Use bidirectional instead. (UnityUpgradable) -> bidirectional")]
    public bool biDirectional { get; set; }
    Property Value
    Type Description
    bool
    Remarks

    When a link connects to NavMeshes at both ends, agents can always traverse that link from the start position to the end position. When this property is set to true it allows the agents to traverse the link from the end position to the start position as well. When the value is false the agents will not traverse the link from the end position to the start position.

    bidirectional

    Gets or sets whether agents can traverse the link in both directions.

    Declaration
    public bool bidirectional { get; set; }
    Property Value
    Type Description
    bool
    Remarks

    When a link connects to NavMeshes at both ends, agents can always traverse that link from the start position to the end position. When this property is set to true it allows the agents to traverse the link from the end position to the start position as well. When the value is false the agents will not traverse the link from the end position to the start position.

    costModifier

    Gets or sets a value that determines the cost of traversing the link.

    Declaration
    public float costModifier { get; set; }
    Property Value
    Type Description
    float
    Remarks

    A negative value implies that the cost of traversing the link is obtained based on the area type.
    A positive or zero value overrides the cost associated with the area type.

    costOverride

    Gets or sets a value that determines the cost of traversing the link.

    Declaration
    [Obsolete("costOverride has been deprecated. Use costModifier instead. (UnityUpgradable) -> costModifier")]
    public float costOverride { get; set; }
    Property Value
    Type Description
    float
    Remarks

    A negative value implies that the cost of traversing the link is obtained based on the area type. A positive or zero value overrides the cost associated with the area type.

    endPoint

    Gets or sets the local position at the middle of the link's end edge, relative to the GameObject origin.

    Declaration
    public Vector3 endPoint { get; set; }
    Property Value
    Type Description
    Vector3
    Remarks

    This property determines the position of the link's end edge only when endTransform is null. Otherwise, it is the endTransform that determines the edge's position.
    The world scale of the GameObject is never used.

    endTransform

    Gets or sets the Transform tracked by the middle of the link's end edge.

    Declaration
    public Transform endTransform { get; set; }
    Property Value
    Type Description
    Transform
    Remarks

    The link places the end edge at the world position of the object referenced by this property. In that case endPoint is not used. Otherwise, when this property is null, the component applies the GameObject's translation and rotation as a transform to endPoint in order to establish the world position of the link's end edge.

    occupied

    Checks whether any agent occupies the link at this moment in time.

    Declaration
    public bool occupied { get; }
    Property Value
    Type Description
    bool
    Remarks

    This property evaluates the internal state of the link every time it is used.

    startPoint

    Gets or sets the local position at the middle of the link's start edge, relative to the GameObject origin.

    Declaration
    public Vector3 startPoint { get; set; }
    Property Value
    Type Description
    Vector3
    Remarks

    This property determines the position of the link's start edge only when startTransform is null. Otherwise, it is the startTransform that determines the edge's position.
    The world scale of the GameObject is never used.

    startTransform

    Gets or sets the Transform tracked by the middle of the link's start edge.

    Declaration
    public Transform startTransform { get; set; }
    Property Value
    Type Description
    Transform
    Remarks

    The link places the start edge at the world position of the object referenced by this property. In that case startPoint is not used. Otherwise, when this property is null, the component applies the GameObject's translation and rotation as a transform to startPoint in order to establish the world position of the link's start edge.

    width

    The width of the segments making up the ends of the link.

    Declaration
    public float width { get; set; }
    Property Value
    Type Description
    float
    Remarks

    The segments are created perpendicular to the line from start to end, in the XZ plane of the GameObject.

    Methods

    UpdateLink()

    Replaces the link with a new one using the current settings.

    Declaration
    public void UpdateLink()

    UpdatePositions()

    Replaces the link with a new one using the current settings.

    Declaration
    [Obsolete("UpdatePositions() has been deprecated. Use UpdateLink() instead. (UnityUpgradable) -> UpdateLink(*)")]
    public void UpdatePositions()
    In This Article
    • Properties
      • activated
      • agentTypeID
      • area
      • autoUpdate
      • autoUpdatePositions
      • biDirectional
      • bidirectional
      • costModifier
      • costOverride
      • endPoint
      • endTransform
      • occupied
      • startPoint
      • startTransform
      • width
    • Methods
      • UpdateLink()
      • UpdatePositions()
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)