最近接触到Navigation自动寻路,在网上查看了一些资料。这里做一下笔记:
Unity自带Navigation简明入门教程1
Unity自带Navigation简明入门教程2
Unity自带Navigation简明入门教程3
第二个目标:带有高度信息的自动寻路的场景
在上一个场景的基础上,创建一个带有高度信息的场景: 在场景中放几个盒子,按照大小不同排成楼梯形状,作为测试场景,台阶间高度差不要太大,免得上不去(有数字可以调节多高能上去)。 选中楼梯形状的模型,这些地方是可以通过的,因此和地面的渲染方式相同。直接烘焙。
将红色的Box放在梯形模型的上方,运行程序,就会看到胶囊会自己寻找路径,跳上台阶。
2.场景高度过高
如果我们提高阶梯的高度,就会造成正常的寻路路径断开,解决的办法有两个:
i)修改烘焙系数
断开的原因是两个阶梯间的间距过大,通过调整烘焙间距即可实现新的寻路路径。
ii)为断层提供新的寻路方法-----OffMeshLink
也可以用另一张方法让胶囊攀登上不可逾越的高度,使用OffMeshLink:
为场景中阶梯处增加一个楼梯,我们也用一个Box来代替,并为这个楼梯增加两个Box分别放在楼梯的两端,分别命名为start和end。选中楼梯,为楼梯增加Component--->Navigation——>Off Mesh Link组件。
Off Mesh Link可以连接两块断开的寻路路径,start和end分别是通往这个连接的起始位置和终止位置。将start和end两个Box分别拖入如下图Off Mesh Link中的的start和end位置:
烘焙寻路,即可看到在start和end之间新增加了一条黑色的线条路径。(start放在上面end放在下面可以顺利烘焙成功,反过来则不行,目前不知道为什么,知道的请回帖~)
这样运行程序,就可以看到胶囊顺着楼梯靠近红色目标。默认的路径是可以双向通行的,因此当红色目标在阶梯的下方时,胶囊可以沿着楼梯下来继续追红色目标
|