导航寻路组件

本文介绍了在Unity中实现导航寻路的步骤:配置Navigation窗口,烘焙导航网格,为角色添加Nav Mesh Agent组件并编写寻路脚本。此外,还讨论了如何处理动态障碍物的导航问题,包括取消其导航静态属性,烘焙并添加Nav Mesh Obstacle组件。
摘要由CSDN通过智能技术生成

1.打开Navigation窗口,选中地面和静止物体(比如房子,草丛,墙等),在Navigation窗口下的Object勾选Navigaton Static,Navigation Area勾选Not Walkable;在窗口下的Bake点击bake烘焙。

2.点击需要导航寻址的物体(比如敌人【自动寻找玩家】),添加Nav Mesh Agent组件。

3.在需要导航寻址的物体挂载一个脚本,脚本代码如下

 public NavMeshAgent nav;//导航组件

  public Transform target;//追击目标

   private void Update()

    {

        this.nav.SetDestination(this.target.position);//设置更新目标

   }

扩展:鼠标点击主角寻路(脚本在主角身上)

public NavMeshAgent nav;//导航组件

    private void Update()

    {

        if(Input.GetMouseButtonDown(0))

        {

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//发射一条射线从摄像机开始,到鼠标点击的位置

            RaycastHit rayhit;

            if(Physics.Raycast(ray,out rayhit))//射线碰到的物体信息给予rayhit

            {

                if(rayhit.transform.name=="Plane")//判断是不是点击到地面

                {

                    nav.SetDestination(rayhit.point);

                }

            }

        }

    }

4.碰到动态障碍物,把会动的障碍物的Navigation static取消勾选,勾选Nothing,在窗口下的Bake点击bake烘焙。然后点击动态障碍物,添加组件Nav Mesh Obstacle。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值