父子物体碰撞

前提须知: 刚体都处于唤醒状态,所有碰撞体层级都能互相碰撞,同一个物体下的碰撞体不会发生碰撞

父物体 A,子物体B,都有碰撞器

AB附上了以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestFamilyCollision : MonoBehaviour
{
void Start()
{
Rigidbody rb;
TryGetComponent<Rigidbody>(out rb);
rb?.WakeUp();
}

private void OnTriggerEnter(Collider other)
{
Debug.Log(name + other.name);
}
}

进行如下两个测试,截图就不贴了麻烦…..

子物体主动向父物体碰撞

双方实现了碰撞接口

A有刚体 B有刚体 ,都能接收

A有刚体 B无刚体,都无接收

A无刚体 B有刚体,都能接收

总结:以刚体为独立的单位,其子物体上若无刚体,则子物体上的碰撞器由父物体上的刚体控制,无法与父物体碰撞器反应。

其子物体上若由刚体,则其子物体刚体和碰撞器构成一个单位,以此衍生。

与其他物体C碰撞,父物体会不会接收碰撞事件?

  • A 刚体 碰撞器 接口,B 碰撞器 接口,C 碰撞器

    BC碰撞 B接口输出一次 A接口输出一次

    AC碰撞 A接口输出一次

    AB与C碰撞 A接口输出两次 B接口输出一次。

  • A 碰撞器 接口,B 刚体 碰撞器,接口,C 碰撞器

    预测一手:

    BC B接口输出一次

    AC 无

    AB与C碰撞 B接口输出一次

    测试后也就是这样

  • A 刚体 碰撞器 接口,B 刚体 碰撞器 接口,C 碰撞器

    预测一手:

    BC B接口输出一次

    AC A接口输出一次

    AB与C碰撞 A接口输出一次 B接口输出一次