sourcePosition | 所请求路径的最初位置。 |
targetPosition | 所请求路径的最终位置。 |
areaMask | 位域遮罩,指定在计算路径时可通过的导航网格区域。 |
path | 生成的路径。 |
bool 如果找到完整路径或部分路径,则为 true,否则为 false。
计算两点之间的路径并存储生成的路径。
此函数可用于提前规划路径以避免需要路径时游戏延迟。另一个用途是在移动代理之前检查目标位置是否可达。
与 NavMeshAgent.SetDestination(异步调用)相反,此函数立即计算路径。对于非常长的路径来说,这可能是代价高昂的操作,并且可能导致帧率不稳。建议每帧仅执行少量寻路,例如,在评估到掩蔽点的距离时。
返回的路径可用于使用 NavMeshAgent.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 | 一种过滤器,指定在计算路径时可以通过的导航网格区域的成本。 |
path | 生成的路径。 |
bool 如果找到完整路径或部分路径,则为 true,否则为 false。
计算映射到导航网格的两个位置之间的路径,受过滤器参数定义的限制条件和成本的约束。