我目前正在尝试使用 NavMesh 在 Unity 上进行一些寻路,但出于某种原因,当我运行游戏时,它说代理距离 NavMesh 不够近(即使它实际上就在其中)。
我添加了我的代码,并附加了一些图像来更好地解释我的问题。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Fellas : MonoBehaviour
{
[SerializeField] Transform target;
NavMeshAgent agent;
private void start()
{
agent = GetComponent<NavMeshAgent>();
agent.updateRotation = false;
agent.updateUpAxis = false;
}
private void Update()
{
agent.SetDestination(target.position);
}
}
我尝试再次烘焙导航网格,更改路径点的大小,使路径点更接近角色,但似乎没有任何变化。帮助将不胜感激!
编辑:注意到图像的信息没有显示(对于 stackoverflow 的工作方式仍然是新的)所以只想说:第一张图片显示了 NavMesh 的边框。第二个是角色和路径点的特写,第三个只是我得到的错误。
如果导航网格尚未准确创建,特别是 AI 移动的区域,则会出现此错误。检查您是否正确设置了导航区域。该视频可能会有所帮助:
https://www.youtube.com/watch?v=HRX0pUSucW4
对于“未设置对象引用”错误,请检查您的 navmeshagent 是否与 Fellas 脚本位于同一对象中。
如果上述方法都不能解决问题,如果您能给我发送更多项目屏幕截图,以便我更好地了解发生的情况,我将不胜感激。