Unity3D游戏开发之 (Navmesh) 和寻路 (Pathfinding)烘焙
2015-03-07 21:56
127 查看
导航网格烘焙
一旦标记完导航网格 (Navmesh) 几何体和层之后,就可以烘焙导航网格几何体了。
在导航 (Navigation) 窗口中(窗口 (Window)->导航 (Navigation)),转到烘焙 (Bake) 选项卡(右上角),然后点击“烘焙”按钮(右下角)。
导航烘焙窗口
以下是会影响导航网格 (Navmesh) 烘焙的属性:
请注意,烘焙的导航网格是场景的一部分,代理可以通过该导航网格。要删除导航网格,在烘焙 (Bake) 选项卡中点击清除 (Clear)。
实现细节
烘焙导航网格 (Navmesh) 时,它会映射到 XZ 平面中的方格中。可视化方格时,其边框被视为导航网格 (Navmesh) 上的亮蓝色轴对齐线。Unity 在一个场景中最多支持 1024 个方格,每个方格用 1000×100 个体素表示。如果您打算让代理在大区域中导航,请注意导航网格 (Navmesh) 的大小和最终的网格数。
具有亮蓝色轴对齐线的导航网格显示方格标度
半径 (Radius) 的默认设置为 0.5,宽度误差 (Width Inaccuracy) 的默认设置为0.16666667 (16.666667%)。默认设置的方格边长可计算为:
1000 * (2*半径) * 宽度误差 = 1000 * (2*0.5) * 0.16666667 = 166.66667。
增加宽度误差 (Width Inaccuracy) 将允许容纳更大面积,但会降低导航网格 (Navmesh) 精度。
例如,如果您的网格有 32 x 32 个方格,则您将拥有 1024 个方格。这意味着,如果您拥有想与导航网格 (Navmesh) 配合使用的真正巨大地形,按照默认设置,该地形面积不得超过 5.333 乘以 5.333 千米(32 * 166.66667 米)
一旦标记完导航网格 (Navmesh) 几何体和层之后,就可以烘焙导航网格几何体了。
在导航 (Navigation) 窗口中(窗口 (Window)->导航 (Navigation)),转到烘焙 (Bake) 选项卡(右上角),然后点击“烘焙”按钮(右下角)。
导航烘焙窗口
以下是会影响导航网格 (Navmesh) 烘焙的属性:
半径 (Radius) | “典型”代理的半径(最好是最小值)。 |
[align=left]高度 (Height)[/align] | “典型”代理的高度(角色通过所需的“空隙”)。 |
[align=left]最大坡度 (Max Slope)[/align] | 坡度大于此值的所有表面会予以丢弃。 |
[align=left]台阶高度 (Step height)[/align] | 高度差低于台阶高度时,则认为连接至导航网格区域。 |
[align=left]下落高度 (Drop height)[/align] | 如果该属性值是正数,则将为高度差小于该值的相邻导航网格表面放置分离网格链接。 |
[align=left]跳跃距离 (Jump distance)[/align] | 如果该属性值是正数,则将为水平距离小于该值的相邻导航网格表面放置分离网格链接。 |
高级 (Advanced) | |
[align=left]最小区域面积 (Min region area)[/align] | [align=left]面积小于该阈值的区域将予以丢弃。[/align] |
宽度误差 (Width inaccuracy) % | 容许的宽度误差 |
高度误差 (Height inaccuracy) % | 容许的高度误差 |
高度网格 (Height mesh) | 如果勾选此选项,原始高度信息会存储起来。这会对速度和内存性能造成一定影响。 |
实现细节
烘焙导航网格 (Navmesh) 时,它会映射到 XZ 平面中的方格中。可视化方格时,其边框被视为导航网格 (Navmesh) 上的亮蓝色轴对齐线。Unity 在一个场景中最多支持 1024 个方格,每个方格用 1000×100 个体素表示。如果您打算让代理在大区域中导航,请注意导航网格 (Navmesh) 的大小和最终的网格数。
具有亮蓝色轴对齐线的导航网格显示方格标度
半径 (Radius) 的默认设置为 0.5,宽度误差 (Width Inaccuracy) 的默认设置为0.16666667 (16.666667%)。默认设置的方格边长可计算为:
1000 * (2*半径) * 宽度误差 = 1000 * (2*0.5) * 0.16666667 = 166.66667。
增加宽度误差 (Width Inaccuracy) 将允许容纳更大面积,但会降低导航网格 (Navmesh) 精度。
例如,如果您的网格有 32 x 32 个方格,则您将拥有 1024 个方格。这意味着,如果您拥有想与导航网格 (Navmesh) 配合使用的真正巨大地形,按照默认设置,该地形面积不得超过 5.333 乘以 5.333 千米(32 * 166.66667 米)
相关文章推荐
- Unity 用户手册用户指南导航网格 (Navmesh) 和寻路 (Pathfinding)
- 寻路算法学习笔记:Toward More Realistic Pathfinding
- 【小松教你手游开发】【unity系统模块开发】自动寻路Navmesh
- 寻路算法学习笔记:Toward More Realistic Pathfinding
- A star pathfinding project插件点到点寻路
- A* Pathfinding Project (Unity A*寻路插件) 使用教程
- [Unity3D]Unity3D游戏开发之基于ITween实现寻路功能
- unity手游开发--Navmesh自带寻路组件使用注意事项
- Unity3d游戏开发之如何使用烘焙贴图(二)
- 【小松教你手游开发】【unity实用技能】unity自带寻路Navmesh入门教程
- A* Pathfinding Project (Unity A*寻路插件) 使用教程
- unity3d开发2d游戏:自动寻路Navmesh入门
- Unity3d游戏开发之使用烘焙贴图教程(一)
- A* Pathfinding Project (Unity A*寻路插件) 使用教程
- A* Pathfinding Project (Unity A*寻路插件) 使用教程
- 【unity系统模块开发】自动寻路Navmesh
- 寻路算法学习笔记:Toward More Realistic Pathfinding
- 群体寻路算法Flow Field Pathfinding
- Unity3D Navmesh and Pathfinding
- [Unity3D]Unity3D游戏开发之自动寻路与Mecanim动画系统的结合