Hitbox触发事件并不总是注册

时间:2019-02-10 00:25:39

标签: c# unity3d spine

我正在尝试在2D平台游戏中实现基本的战斗机制。我创建了Hitbox和伤害盒游戏对象,它们是角色游戏对象的子代。 Hitbox和伤害盒对象中的每个对象都有自己的2D盒碰撞器和刚体。我正在尝试使用OnTriggerEnter2D事件来检查与伤害盒碰撞的命中盒。尽管当我始终出于测试目的启用Hitbox Collider时此方法正常工作,但是由于我正在动态启用和禁用Hitbox的碰撞器,所以即使我可以直观地验证玩家Hitbox的对撞器,触发事件也不会总是触发和敌人的伤害箱重叠。

这是一款手绘游戏,所以我使用Spine制作动画,并利用Spine的内置事件系统确定何时打开和关闭Hitbox。我已验证这些事件是否已正确触发并已在Unity中使用调试消息注册。我还设置了Physics层,以便将伤害箱和命中箱放在“推送箱”层上,并且该层仅与其他推送箱交互。

我的怀疑是,在某些情况下,在Unity有机会计算触发事件之前关闭了Hitbox。动画本身大约长一秒钟,而命中框处于“活动”状态的窗口比该窗口短。我曾尝试增加点击框的大小以及增加点击框的有效持续时间,但是由于我不希望在打孔器着陆之前先记录点击内容,而且我也不想让点击框受到限制,因此我受到了一些限制以后要活跃太久。

我用于启用点击框和注册触发事件的代码非常简单:

{{1}}

所有的hitbox和伤害盒对象都具有活动的二维运动刚体,并具有连续碰撞检测功能。

0 个答案:

没有答案