Если вы используете Rigidbody с персонажем, вы можете получить это из коробки. :)
Итак, ваша иерархия может выглядеть так:
- Персонаж (имеет Rigidbody и управляющий скрипт)
- ребенок (может быть, есть коллайдеры)
- внук (может быть, есть коллайдеры)
Сообщения OnCollisionEnter будут запускаться в GameObject, содержащем Rigidbody, достигая вашего родительского сценария управления без необходимости писать дополнительный сценарий ретрансляции, который будет прикреплен к каждому коллайдеру.
Если вам нужно выяснить, кто из ваших дочерних коллайдеров участвовал в столкновении, вы можете сделать это следующим образом:
void OnCollisionEnter(Collision collision) {
Collider myCollider = collision.contacts[0].thisCollider;
// Now do whatever you need with myCollider.
// (If multiple colliders were involved in the collision,
// you can find them all by iterating through the contacts)
}