Unity碰撞检测/触发器触发问题

在制作2D平板冒险游戏的攻击模块时,遇到攻击敌人后无法产生触发器事件的问题。

在玩家游戏对象下有一攻击子对象。子对象碰撞器默认处于禁用状态,当按下攻击键时,通过代码:

gameObject.GetComponent<Collider2D>().enabled = true;

来对碰撞器进行激活,敌人有刚体,且并非Static状态。两个物体均有碰撞体,但此时并未触发OnTriggerEnter2D事件。

但是如果通过攻击动画或在Inspector窗口中修改碰撞器状态便能成功触发事件。

此时场景中玩家及敌人均未移动,当玩家移动后,碰撞事件可正常触发。

查阅文档后有如下说明:

为了优化资源,物理系统刚体停止移动时会停止计算刚体的碰撞;此时刚体进入“睡眠状态”。

尝试将敌人刚体的Sleeping Mode修改为Never Sleep 问题解决。

关于Unity碰撞体及触发器的规则参考自:

碰撞体(Collider)以及触发器(Is Trigger)----碰撞的条件,触发碰撞器和触发器的条件

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值