关于无敌的提问

关于无敌状态,我有两个疑问,想请教一下。

  1. 在击退(后仰)时,不知为何会被判定为多段命中。

在我的作品中,我在“受到伤害的瞬间”就将击退动画的HitCollision设为无效,因此理论上第一次命中后,后续的命中判定应该不会再触发。但有时一个攻击判定会命中多次(造成2~3次伤害)。如果是两次命中,我还能理解为帧延迟导致,但有时会命中三次以上,这究竟是bug还是设计如此?希望能得到解答。

  1. 关于除击退外其他节点的无敌设置。

我想制作如图所示的无敌数据,使角色“在受到伤害后,从起身瞬间开始进入无敌状态”。我在起身动作中开启了“起身无敌”开关(即此时应开始无敌),但不知为何角色并未进入无敌状态,反而在下一次受到伤害时,上述无敌时间才被重新触发。如果能通过调试功能查看游戏运行时的开关状态就好了,但我找不到能查看游戏内开关状态的功能,因此感到困扰(想确认“起身无敌”开关是否正常工作)。

如果表述不够清晰,敬请谅解。谢谢!

关于 #1,如果无敌时间大于 0.02,多重攻击是否仍然会被记录?

#2. AGM 有一个开关标签调试器,你可以在对象创建时创建它,然后复制粘贴到你想要测试的对象中,并在检查器中设置参数。这里有一个可能有帮助的流程视频:

非常抱歉回复迟了。

感谢您提供的开关标签调试器信息,我会在有时间的时候进行查看,如有需要,考虑引入。

关于问题#1的回复,当我将无敌时间设置为0.02秒后,多段击不再发生。由于我已移除了碰撞判定,因此判断无需设置无敌状态,推测问题的原因可能是我在击中时没有开启无敌状态。

今后也请多多关照。

1 个赞

这可以通过在 AttackArea2D 上使用新的“每攻击一次目标”(Is Once Per Attack Target)设置来解决。然后,您可以设置下一次攻击发生前的冷却时间。这比禁用碰撞的方法更好:

感谢您的信息。我想立即尝试引入。

然而,根据信息,似乎存在“攻击判定与碰撞判定会发生接触”的设定,即使没有造成伤害,也会判定为命中(本作中会在攻击命中时显示命中标记)。

我听说需要“在命中时禁用攻击判定的处理”,但实际不知道如何进行该处理而感到困扰。是否存在以我方攻击命中为条件进行分支的方法?或者是否存在“禁用攻击判定”的动作?我两者都未能找到。如果可能的话,希望能得到您的指导。

您可以使用 ChangeObjectProperty 并设置 AttackCollision 节点(AttackArea2D 节点的子节点)的 disabled 属性。