I am a total beginner in Unity, so I don't know why it works or how obvious it might be to seasoned developers. But with some trial and error, here's the simplest setup I've found that will make a parent trigger OnTriggerEnter when a child's Collider collides with something else:
- Add a RigidBody to the parent. If you don't want it to be affected by any physics, enable "Is Kinematic". You don't have to add a Collider. You don't even need a Mesh or Renderer. This can be an empty GameObject.
- Add a Collider to the child. Enable "Is Trigger".
- Add a Script to the parent.
Now if you add this snippet to the parent:
private void OnTriggerEnter(Collider other)
It'll print out "Collision" when the child collides with something.
The drawback is that the object (the parent) won't move even if its own parent moves. If you want your object to react to the parent's movements, you have to remove the RigidBody from the parent, and add a script to the child that calls a method on its parent. Either that, or make it fire an event, and have the parent subscribe to it.