返回介绍

NavMeshAgent.destination 目的地

发布于 2019-12-18 15:38:05 字数 3202 浏览 1334 评论 0 收藏 0

JavaScript => public var destination: Vector3;
C# => 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.

返回为该代理设置的目的地。

o 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.

如果目的地设置了但是路径没有处理该位置那么返回的将会是最靠近预先设置位置的有效导航网格位置。

o If the agent has no path or requested path - returns the agents position on the navmesh.

如果代理没有路径或者需求位置-返回该代理在导航网格上的位置。

o 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.

要求代理移动到有效的导航网格位置,该位置最靠近要求的目的地。

o The path result may not become available until after a few frames. Use pathPending to query for outstanding results.

路径结果可能不变成可获取的知道几帧之后。使用pathPending 去查询未完成的结果。

o 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.

如果没有路径是需求的(即场景中没有导航网格)那么不可能导航网格位置附近找到有效值。如果你需要去明确的解决这种情况,使用SetDestination 并检查返回值。

JavaScript:

#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;
		}
	}
}

C#:

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;
		}
	}
}

navmeshagent

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文