在制作2D平板冒险游戏的攻击模块时,遇到攻击敌人后无法产生触发器事件的问题。
在玩家游戏对象下有一攻击子对象。子对象碰撞器默认处于禁用状态,当按下攻击键时,通过代码:
gameObject.GetComponent<Collider2D>().enabled = true;
来对碰撞器进行激活,敌人有刚体,且并非Static状态。两个物体均有碰撞体,但此时并未触发OnTriggerEnter2D事件。
但是如果通过攻击动画或在Inspector窗口中修改碰撞器状态便能成功触发事件。
此时场景中玩家及敌人均未移动,当玩家移动后,碰撞事件可正常触发。
查阅文档后有如下说明:
为了优化资源,物理系统在刚体停止移动时会停止计算刚体的碰撞;此时刚体进入“睡眠状态”。
尝试将敌人刚体的Sleeping Mode修改为Never Sleep 问题解决。
关于Unity碰撞体及触发器的规则参考自:文章来源:https://www.toymoban.com/news/detail-504912.html
碰撞体(Collider)以及触发器(Is Trigger)----碰撞的条件,触发碰撞器和触发器的条件文章来源地址https://www.toymoban.com/news/detail-504912.html
到了这里,关于Unity碰撞检测/触发器触发问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!