sourcePosition | 请求路径的初始位置。 |
targetPosition | 请求路径的最终位置。 |
areaMask | 位字段掩码,指定计算路径时允许经过哪些 NavMesh 区域。 |
path | 结果路径。 |
bool 如果找到完整或部分路径,则返回 True。否则,返回 False。
计算两点之间的路径,并将结果路径存储起来。
在需要之前规划路径,使用此函数可避免游戏延迟。你还可以使用此函数在移动代理之前检查目标位置是否可达。
此函数是同步的。它会立即执行路径查找,在处理非常长的路径时可能会对帧速率产生不利影响。建议每帧仅执行几次路径查找,例如,评估覆盖点的距离时。
使用返回的路径,使用 NavMeshAgent.SetPath 设置代理的路径。要使 SetPath 起作用,代理必须靠近起点。
// ShowGoldenPath using UnityEngine; using UnityEngine.AI;
public class ShowGoldenPath : MonoBehaviour { public Transform target; private NavMeshPath path; private float elapsed = 0.0f; void Start() { path = new NavMeshPath(); elapsed = 0.0f; }
void Update() { // Update the way to the goal every second. elapsed += Time.deltaTime; if (elapsed > 1.0f) { elapsed -= 1.0f; NavMesh.CalculatePath(transform.position, target.position, NavMesh.AllAreas, path); } for (int i = 0; i < path.corners.Length - 1; i++) Debug.DrawLine(path.corners[i], path.corners[i + 1], Color.red); } }
sourcePosition | 请求路径的初始位置。 |
targetPosition | 请求路径的最终位置。 |
filter | 过滤器,指定计算路径时允许经过的 NavMesh 区域的开销。 |
path | 结果路径。 |
bool 如果找到完整或部分路径,则返回 True,否则返回 False。
计算 NavMesh 上映射的两个位置之间的路径,遵循 filter 参数定义的约束和开销。