当导航网格障碍物挡道时,我正在尝试了解如何使用 Unity 的导航系统最接近目的地。我有这个示例,其中包含一个胶囊障碍物(打开 Carve)和一个使用脚本管理的胶囊代理。它似乎工作正常,但是当我“单击”障碍物以设置代理的目的地(到雕刻区域内的一个点)时,代理会移动到障碍物周围的另一个位置。
如何让代理到达障碍物周围的最近点或距离所选目的地最近的点(即障碍物区域内)?
移动代理的脚本
using UnityEngine;
using UnityEngine.AI;
public class CapsuleMovement : MonoBehaviour {
NavMeshAgent agent;
public NavMeshPathStatus partial;
void Start() {
agent = GetComponent<NavMeshAgent>();
}
void Update() {
if (Input.GetMouseButtonDown(0)) {
RaycastHit hit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100)) {
agent.destination = hit.point;
}
}
}
}