新手在使用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系列方法。