关于Unity中同一物体以及子物体下碰撞盒检测问题

1. 如果同一对象(非空节点)下有多个碰撞盒

在这里插入图片描述

A—
1.碰撞盒组件
2.刚体组件
B—
1.碰撞盒组件
2.碰撞盒组件
那么A下边两个碰撞盒都可以触发(先碰到谁直接响应事件)。

2. 在一个对象下的子对象/子节点使用了碰撞体,如果此物体(有刚体)收到碰撞事件,会冒泡传到有刚体(rigidbody)组件上去

如下图:
在这里插入图片描述

在这里插入图片描述 M_MagneticCrane1(带有刚体)是Permanent_Magnet(带有碰撞体)的父对象的父对象的父对象的父对象。Permanent_Magnet和其他碰撞体碰撞,会把信号发送到父对象上,如果此父对象RotatingBeam(没有rigid body)接收不到事件信号,会往上再发送到M_MagneticCrane1。
不过本次测试没有尝试如果中间(父对象)也加入rigidbody组件会发生什么------感觉会十分混乱。
此方法适用于装配体对象(有且由多个子对象组成),便于控制设置碰撞盒在特定的区域,减少开销。

比如有多个需要碰撞的部位,但又不是全部部位需要碰撞
在这里插入图片描述
把传输物体放入1(传送带)运送到3,会依次碰撞123,触发
OnCollisionEnter(Collision),OnCollisionStay(Collision),OnCollisionExit(Collision)。顺带一提OnCollisionStay没有特殊情况不要加,触发频率难以控制。

3.一个物体下子对象下有子对象带碰撞盒,有的带触发器

在这里插入图片描述
1子对象,带的碰撞盒,2子对象带的触发器组件(碰撞盒点击is trigger),父对象M_CutMach1是带的rigid body组件。都会独立触发OnCollision系列方法OnTrigger系列方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值