效果demo:
一、新建测试场景
测试场景:新建空Navmesh作为路径的容器
二、设置导航路径
在可以通过的物体上勾选Navigation Static,代表参与到导航的烘焙。
进行烘焙,点击bake按钮,场景出现蓝色的导航网格即代表成功。
三、设置某些不可走的地方
四、添加小人,挂上NavMeshAgent组件
五、利用这个组件控制小人的移动
using UnityEngine;
using UnityEngine.AI;
public class NavmeshController : MonoBehaviour
{
NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, Mathf.Infinity))
{
agent.SetDestination(hit.point);
}
}
}
}
判断是否到达终点,可以通过agent.hasPath