寻路
寻路 行为允许将对象移动到所选目的地,并标记物品为障碍物。被标记为障碍物的对象将被移动对象避开。
选择要避开的对象:"Obstacle for Pathfinding" 行为
通过使用行为 "Pathfinding obstacle" 来作为障碍物。
当行为添加到对象时,可以修改一些属性:
- 不可通过: 如果启用,障碍物将不可通过。移动对象将避开它们,永远不会穿过它们。
- 代价: 如果障碍物不是不可通过的,则可以为障碍物设置代价。移动对象在寻找最佳路径到达目的地时,会更倾向于避开代价高的障碍物。例如,河流可能具有一定的代价。如果可能的话,移动对象会避开它。然而,如果没有其他绕过河流的方法,或者与其他地区相比,河流的代价较低,则移动对象会通过它(而不是爬上类似山的高代价区域)。如果我们把鳄鱼放进河流并增加其代价,移动对象可能会决定爬上山。
提示
障碍物可能会占用比预期更多的空间,因为使用障碍物周围的框而不是碰撞蒙版扩展可以解决这个问题。
避开障碍物移动对象:"Pathfinding" 行为
"Pathfinding 行为" 允许计算对象到目的地的最短路径,并可选择将对象移动到此目的地,同时避开所有具有"Obstacle for Pathfinding" 的对象。
在为对象添加行为后,可以自定义一些选项:
- 加速度: 在沿路径移动时,对象加速的速度。
- 允许对角线移动: 设置对象是否可以对角线移动。
- 角度偏移: 如果精灵朝向错误,可以设置角度偏移。
- 额外边框大小: 设置对象周围的边框大小。此设置确定对象可以移动到障碍物多近。
- 最大速度: 对象可以沿路径移动的最大速度。
- 旋转对象: 如果不希望对象在移动时旋转,禁用对象的旋转。
- 旋转速度: 设置对象旋转的速度。
- 虚拟单元格的高度和宽度: 路径是使用虚拟网格生成的。可以更改此虚拟网格的单元格大小。当网格较小时,移动更精确,可以在对象之间找到路径,但对设备的计算量更大。
注意
较小的单元格大小意味着更多的计算,因此尽量保持较大的大小。
添加一个移动寻路对象的动作
要启动寻路移动,添加动作"移动到位置",并指定要移动对象到的位置。它将根据行为属性中定义的特性进行移动。如果要在游戏过程中更改对象的移动方式,可以使用动作更改这些属性。
警告
"移动到位置" 动作只需要运行一次。如果没有条件运行此动作,它将尝试在每一帧重新计算路径。您的对象将不会移动,并且这将为设备生成大量的计算。相反,添加一个确保对象寻路器速度为 0 或尚未找到路径的条件。
示例
提示
查看实际效果! 🎮
在线查看这些示例。
普通寻路行为
寻路基础
参考
所有动作、条件和表达式都列在 寻路参考页面。