支持不同角色区域权限

../../_images/nav_actor_doors.png

如果要举一个游戏中不同区域访问权限的例子,那通常就是连接房间的门,不同的房间使用不同的导航网格,不是所有角色、所有时间都能够进入这扇门。

在门的位置添加一个 NavigationRegion。添加一个合适的导航网格,大小和门一样,能够连接附近的导航网格。控制访问权限就是启动/禁用某个导航层,这样路径查询时使用相同的导航层就能够查找出经过“门”的导航网格的路径。

位掩码可以充当一组门钥匙或者能力,只有与启用的层中存在至少一个匹配,寻路查询才能够找出经过这个区块的路径。详见 使用 NavigationLayer,介绍了导航层和导航遮罩的使用。

../../_images/nav_actor_doorbitmask.png

如果需要,也可以启用/禁用整个“门”的区块,但禁用后会阻止所有路径查询访问该区块。

请尽量优先选择在路径查询中使用导航层,因为启用和禁用区块的导航层会触发导航地图连接的重新计算,性能开销很大。

警告

更改导航层只会影响新的路径查询,不会自动更新已有路径。