【Unity基础知识】关于Unity导航系统新增功能的使用说明

发布 : Unity培训      来源:Unity干货资料

2021-12-24 15:20:34

Unity2017以上的版本,其导航系统比5.X版本新增加了一些功能,最显著的就是导航窗口的更新,如下图:

在Agents里面多出来了AgentTypes,其下面可以添加不同的代理类型,每个类型都可以设置不同的半径、高度、坡度和所上台阶的高度,给场景中的物体添加NavMeshAgent组件后,可以选择不同的AgentType,如下图所示:

但是这里会出现一个问题,即使选择了不同的AgentType,运行的时候会报错,如下图所示:

如果选择Humanoid就没有出现上面的报错,主要是因为不同的AgentType需要其相对应的导航路径,如果两个物体分别选择了player和Enemy两个AgentType,则需要生成两个不同的导航路面,直接使用Unity2017原生的组件是没有办法实现的。

对此Unity官方提供了另外的导航组件,可以实现不同的游戏物体,使用不同的AgentType沿着不同的导航路径进行自动寻路。获取新的导航组件步骤如下:

1.进入导航窗口的Bake界面,如下图所示:

2.点击上图中的链接,进入GitHub,如下图所示:

3.然后点击Download ZIP,下载压缩包,然后解压缩,打开解压缩后的文件夹,找到Assets,里面的文件目录如下:

4.在Examples文件夹中给出了导航系统的最新功能的7个案例,大家可以通过案例来了解导航的新增功能都有哪些,案例目录如下:

5.在NavMeshComponents里面就是新增加的脚本组件,目录如下所示:

6.实现上述新增功能,必须用到新增加的脚本组件,但是如果把这些脚本组件直接导入到Unity2017引擎编辑器中后会报一堆错,通过Github上的提示,上述所下的脚本组件需要在Unity2019.3.0版本或者更高版本环境下运行:

下面对上述的案例所实现的功能进行大致说明:

案例1所实现的功能:不同的游戏物体可以选择不同的AgentType,然后按不同的导航路径移动;

案例2所实现的功能:导航路径实时动态烘焙,点击鼠标左键,物体移动到点击位置,遇到中间断的路径时,点击空格键可以生成小平板,然后在小平板上动态的生成导航路径;

案例3所实现的功能:自动寻路的物体自身坐标与世界坐标不一致时,物体运动的效果,例如物体爬坡;

案例4所实现的功能:默认导航网格只生成一部分,当点击地面时,动态生成新的网格,并且把位置同步给要自动寻路的物体,让物体走到鼠标点击的位置;

案例5所实现的功能:点击地形上不同的位置,动态生成导航网格,但网格不全是平的,有一定的曲面,如下图:

案例6所实现的功能:按下鼠标左键在地面上拖动,更改导航网格,如下图:

案例7所实现的功能:分离路面导航时,物体有向上跳的动作,而不是直接平移,如下图:

大家可以根据实际要实现的功能,选择不同的场景研究一下即可。

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部