您的位置:首页 > 移动开发 > Unity3D

Unity3D游戏开发之 (Navmesh) 和寻路 (Pathfinding)烘焙

2015-03-07 21:56 127 查看
导航网格烘焙

一旦标记完导航网格 (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)如果勾选此选项,原始高度信息会存储起来。这会对速度和内存性能造成一定影响。
请注意,烘焙的导航网格是场景的一部分,代理可以通过该导航网格。要删除导航网格,在烘焙 (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 米)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: