Version: 5.6 (switch to 2017.1b)
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

NavMeshAgent.destination

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public var destination: Vector3;
public Vector3 destination;

Description

Gets or attempts to set the destination of the agent in world-space units.

Getting:

Returns the destination set for this agent.

• If a destination is set but the path is not yet processed the position returned will be valid navmesh position that's closest to the previously set position.
• If the agent has no path or requested path - returns the agents position on the navmesh.
• If the agent is not mapped to the navmesh (e.g. scene has no navmesh) - returns a position at infinity.

Setting:

Requests the agent to move to the valid navmesh position that's closest to the requested destination.

• The path result may not become available until after a few frames. Use pathPending to query for outstanding results.
• If it's not possible to find a valid nearby navmesh position (e.g. scene has no navmesh) no path is requested. Use SetDestination and check return value if you need to handle this case explicitly.

#pragma strict
@RequireComponent(NavMeshAgent)
public class FollowTarget extends MonoBehaviour {
	public var target: Transform;
	var destination: Vector3;
	var agent: NavMeshAgent;
	function Start() {
		// Cache agent component and destination
		agent = GetComponent.<NavMeshAgent>();
		destination = agent.destination;
	}
	function Update() {
		// Update destination if the target moves one unit
		if (Vector3.Distance(destination, target.position) > 1.0f) {
			destination = target.position;
			agent.destination = destination;
		}
	}
}
using UnityEngine;

[RequireComponent(typeof(NavMeshAgent))] public class FollowTarget : MonoBehaviour { public Transform target; Vector3 destination; NavMeshAgent agent;

void Start() { // Cache agent component and destination agent = GetComponent<NavMeshAgent>(); destination = agent.destination; }

void Update() { // Update destination if the target moves one unit if (Vector3.Distance(destination, target.position) > 1.0f) { destination = target.position; agent.destination = destination; } } }