- Home /
Extracting child trigger from compound collision
Hi all! I'm working on a shooter/space fighter game and practically all my objects are supposed to have different 'layers' of colliders, each representing slightly different functionality - think of hull and shields. Each individual layer is made up of several colliders, e.g. the current dummy enemy has three hull colliders.
Now, my problem is that I need to know what was hit so that I can consolidate it in a health function/object. E.g. a hit to the engines is supposed to trigger a different effect and the shield itself is made of two layers of which only one can regenerate; there's also an additional trigger collider not used for health calculations at all.
My favored approach is to have a single script at root that gathers all hit information. For the hull/armor, I can extract the collider from the Collision provided by Collider.OnCollisionEnter with no problem and read its tag. The shields are just triggers however (as they react 'manually' to physics) and Collider.OnTriggerEnter will only supply the other collider so I cannot look up what layer was hit!
My other approach was applying a script to every single collider/trigger child object and have them report back to a single script at root. This did not work for the individual colliders (only the object carrying the rigidbody used OnCollisionEnter); while it did work for the triggers, the setup was rather tedious to say the least.
If possible in any way, I'm looking for a solution that implements only a single method for extracting information from both triggers and colliders. Most objects will not be implemented by me, so while using a mix would technically work, the complexity and interdependencies seem like a guarantee for unwanted bugs too to incorrect setup.
Your answer
Follow this Question
Related Questions
Using shadows as Triggers? 1 Answer
How to restart scene with trigger? 1 Answer
OnCollision events inside child with collider 0 Answers
Collider won't collide with a trigger 3 Answers