码迷,mamicode.com
首页 > 其他好文 > 详细

自动寻路Navmesh高级(寻路网格)

时间:2015-03-15 09:37:22      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:网格   unity   源码   


 

之前我们一起学习了如何使用Navmesh组件来实现最基本的角色自动寻路。今天我们再继续深入探索Navigation组件的高级功能。在本文中,你将了解到如何在两个隔离层自动生成寻路网格?如何手动指定寻路网格的路线?以及寻路网格层的应用。

?   隔离层自动生成寻路网格

?               (源码scene1.unity)

?               1.创建Plane实例P1,P2,两者之间出现一条鸿沟。直接控制角色位移是无法通过的。

?               2.打开Navigation窗口,分别选中P1,P2,分别设置Navigation Static 和OffMeshLink Generatic

技术分享

?               3.保存场景,点击场景烘焙按钮Bake。结束后我们可以看到P1,P2除了自身生产寻路网格外,它们直接还生成了连接纽带。

?               4.添加角色模型Solder,为其添加NavMeshAgent(Component->Navigation->NavMeshAgent)

5.给Solder添加PlayerController脚本

 

 

手动指定寻路网格方向

1.scene1.unity的基础上,将P1,P2的OffMeshLink Generatic去除

2.在P1上新建一个空的GameObject Start,P2上新建一个空的GameObject End

3.选中start,为它添加Off Mesh Link组件Component->Navigation->OffMeshLink

4.设置Off Mesh Link组件的属性,Start Point 为 start,End Point为end

5.烘焙场景。我们可以看到有一条纽带从start指向end

点击地图,可以看到角色如果要跨越P1和P2,一定是沿着我们手动创建的路径

 

 

?   导航网格障碍物 NavmeshObstacle

之前我们都是用固定的物体作为障碍物,然后烘焙场景。Unity还提供了动态的障碍物。任何一个GameObject都可以添加Navmesh Obstacle组件,变成一个障碍物。具体步骤是Component->Navigation->NavmeshObstacle.它有两个属性:半径和高度,可以设置跟你的物品差不多的体积大小。

自动寻路Navmesh高级(寻路网格)

标签:网格   unity   源码   

原文地址:http://blog.csdn.net/wy_boke/article/details/44261795

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!