08 导航系统

     NavMesh时3D游戏中Unity在场景中烘焙的导航网格,将游戏中复杂的场景简化为带有信息的网格通过一系列的计算实现自动寻路的功能。

自动寻路:
Step1:生成NavMesh,在搭建好场景后将要烘焙导航的部分设置为静态,在Window中点击Navigation

角色半径:半径越小,在场景中烘焙出的路面就越大
角色高度:设置烘焙到一些洞中,或者是上方有物体的路面
最大坡度:可烘焙的最大坡度,即角色导航时可以上去的地方
可跳下高度:角色可以跳下的高度
可跨越宽度:设置该值后在烘焙,可以出现一些并没有路但物体可以直接跨越的地方。

Step2:为游戏组件添加NavMeshAgent组件。

优先级大的物体的自动避让的能力强
Step3:代码控制实现自动寻路

NavMeshAgent常见属性:
(1)Speed:物体行进的最大速度。
(2) StoppingDistance:离目标多远停止。
(3)RemainingDistance:达到目标的剩余距离。
(4)AvoidancePriority:躲避障碍物优先级。
(5)NavMeshWalkable:该物体可以行进的导航网格设置。

分离路面导航

要实现如同上图中从A点跳到B点,在两个点的所在位置添加空物体,给两个空物体一个公共的父物体,为父物体添加OffMeshLink组件

分层烘焙路面
可将路面设置不同的层,从而设置物体那些层可以通过,那些不能通过。

添加动态障碍
给要当做障碍的游戏物体添加NavMeshObstacle组件

shape可选择的有盒状和胶囊体状的
勾选Carve后,物体碰到障碍后会自动寻找下一条最近路线。

猜你喜欢

转载自www.cnblogs.com/zpy1993-09/p/11762901.html