using UnityEngine;
using UnityEngine.AI;
public class NavMeshExample : MonoBehaviour
{
public NavMeshAgent agent;
void TrySetDestination(Vector3 targetPosition)
{
// 初始化RaycastHit
RaycastHit hit;
// 进行射线检测,检查NavMeshAgent是否能够到达目标点
if (NavMesh.SamplePosition(targetPosition, out hit, 100f, NavMesh.AllAreas))
{
// 如果射线检测成功,则表示目标点在可导航的NavMesh上
// 使用NavMeshHit中的位置作为实际可以到达的终点
Vector3 actualPoint = hit.position;
// 可以将actualPoint设置为NavMeshAgent的目标
agent.destination = actualPoint;
Debug.Log("Agent能够到达目标点的实际终点:" + actualPoint);
}
else
{
Debug.Log("目标点不在可导航的NavMesh上");
}
}
}
12-01
5314
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-07
7344
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-14
3720
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-24