当“与瓷砖接触”的来源状态“经过1帧”关闭时,会被判定为未接触

让敌人朝特定方向移动,如果即将从台阶上掉落,则显示下降动画并使其着陆。然而,结果发现在没有台阶的平地上,敌人会连续播放下降动画,导致无法移动。

经调查发现,当关闭状态动作设置中的“经过1帧”时,从该状态到其他状态的链接条件“与瓷砖接触”(反向接触条件)即使在实际接触的情况下也会触发状态转移。
(此前为了防止敌人对象在分支处理中出现瞬间停顿,已关闭“经过1帧”选项。)

复现方法:
在示例项目 ActionGameMansample1.0 中,将 ActionGameMan.vs 的 Wait 状态中的“经过1帧”关闭即可重现此问题。

规避方法:

  1. 将“经过1帧”设为开启;
  2. 或在链接条件中添加“经过一定时间”,并设置为0.02秒以上。

为了正确处理物理运算的计算时机,新增了“Wait 1 frame(is_allow_one_frame_to_pass)”设置。

当设置为 OFF 时:
在物理引擎完成该帧的更新之前,就会执行“Contact with Tile”的判定。因此,碰撞尚未被注册,游戏侧会误判为角色处于空中。

当设置为 ON 时:
会等待物理引擎更新完成后再进行处理,从而确保“Contact with Tile”能正确返回 true。

也就是说,当使用“Contact with Tile”或“Wall Detection”等物理判定时,必须开启“Wait 1 frame”。仅在不依赖碰撞、仅进行纯粹变量计算或逻辑处理的情况下,才可将其关闭。

感谢您的说明,我已经理解了其运作方式。
由于分支用的状态不进行任何处理,所以我之前将其关闭了,
我也会注意链接侧的条件。

让您久等了,我们已在版本 1.2.9 中修复了此问题,即使帧进度关闭也能正常运行!

感谢您的处理。
已确认即使链接源状态的“经过 1 帧”条件为 OFF,“与瓦片接触”条件也能正常运作。