如上图:绿色的球DesBall为目标,粉红柱状Player为追踪物。深灰色的Obstacal为障碍物。底部浅灰色Floor。
目录Window-->Navigation打开面板如下:
选中Hierarchy下的两个Obstacal, 勾选上Navigation Static,并设置Navigation Layer为Not Walkable.
点击Bake.
再选择地板Floor
设置Navigation Layer为Default.然后点击Bake.
此时当Navigation tab还没有关闭的时候,窗口如下所示:
Scene内有个Navmesh Display的小面板,可以控制Navmesh的显示与否。
把以下代码的脚本添加给Player:
publicclass navTest: MonoBehaviour{
public Transform target;
private NavMeshAgent navMeshAgent;
void Start()
{
navMeshAgent = GetComponent<NavMeshAgent>();
}
void Update()
{
//if(Input.GetKeyDown(KeyCode.F))
//{
// navMeshAgent.destination = target.position;
//}
navMeshAgent.destination =target.position;
}
}
并分别在Player物体下设置该脚本的target属性位Desball.
再为Player添加Nav Mesh Agent组件(Component-->Navigation-->Nav Mesh Agent)
注意要选择NavMesh Walkable为Default。就是之前设置Floor对应的值。
OK,Ctrl+P
enjoy it.