Unity的自动寻路NavMessAgent系统(三)

版权声明:转发,使用请留言告知 https://blog.csdn.net/qq_37310110/article/details/86078716

原工程地址:https://download.csdn.net/download/qq_37310110/10904101

这次我们实现的是 分层寻路,如下图不同的物体只能走规定好的路线

一.搭建场景,设置层

1.搭建一个起点一个终点,另加三条路线

2.起点终点正常bake选择Walkable层,三条线路分别选择对应的层,新加层red,blue,green

3.设置好了之后bake

二.设置移动物体的Navmesh层

1.在所有移动物体身上添加Navmeshagent组件

2.设置AreaMask为自己对应的层级

三.编写控制脚本

参考之前博客

运行结果如开头

四.功能深入,阻断

1.搭建场景两块行驶区域中间一个cube链接

2.设置对应的NavMesh层,行驶区域设置正常的walkable层,连接cube设置bridge层(自定义名字)

3.编写控制脚本

4.运行查看结果 如开头

  public GameObject target;
    private NavMeshAgent agent;
    public GameObject bridge;
    void Start()
    {
        agent = gameObject.GetComponent<NavMeshAgent>();
    }
    void Update()
    {
        agent.SetDestination(target.transform.position);

        if (Input.GetKeyDown(KeyCode.Q))
        {
            bridge.gameObject.SetActive(!bridge.activeSelf);
            agent.areaMask *= -1;
        }
    }

注意:agent.areamask = 1的时候,说明只有第一层启用,=-1的时候是关闭所有层,具体层数设置zidi自定义

原工程地址:https://download.csdn.net/download/qq_37310110/10904101

猜你喜欢

转载自blog.csdn.net/qq_37310110/article/details/86078716