最近接触到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放在下面可以顺利烘焙成功,反过来则不行,目前不知道为什么,知道的请回帖~)
 
 
这样运行程序,就可以看到胶囊顺着楼梯靠近红色目标。默认的路径是可以双向通行的,因此当红色目标在阶梯的下方时,胶囊可以沿着楼梯下来继续追红色目标 
 
 
 
 
 |