- Home /
Unity 5 Mesh Triggers - OnTriggerEnter / OnTriggerExit called repeatedly
We're using mesh colliders as triggers to specify areas in a level where particle effects are active (i.e. ember effects when near lava).
Player
Capsule Collider
Has a Rigidbody
Effect Zone
Mesh Collider
Marked as Convex
Marked as a Trigger
In 4.6, everything worked fine, but in 5.4, we get an endless cycle of OnTriggerEnter and OnTriggerExit calls back to back while the player is in the effect zone--causing the particle effects to start and stop and restart constantly. Adding a rigidbody to the mesh trigger doesn't do anything.
Is this a bug or expected behavior?
Other collider shapes work fine, but we need the flexibility of a mesh trigger to better fit the level. I've seen other similar questions asked, but none were from Unity 5 and none described an endless loop of OnTriggerEnter and OnTriggerExit like I'm seeing.
Answer by AKWolf · Aug 17, 2016 at 01:56 AM
Found the solution, but it was not what I expected.
There were enemies in the scene that enable and disable collision between with the player based on state. We are using Physics.IgnoreCollision for this. Apparently in 5.4, "IgnoreCollision will reset the trigger state of affected colliders, so you might receive OnTriggerExit and OnTriggerEnter messages in response to calling this." See: https://docs.unity3d.com/ScriptReference/Physics.IgnoreCollision.html
So, while our player was inside the trigger volume, every time the enemy script called IgnoreCollision, the OnTriggerEnter and OnTriggerExit callbacks were hit.
We are looking into a solution where we do not have to use IgnoreCollision for those enemies, but a workaround is to use a sentinel bool in OnTriggerEnter to prevent extra starts from happening, and using a dead man's switch (a timeout) in OnTriggerExit.
Your answer
Follow this Question
Related Questions
Workaround for Non-convex MeshCollider cannot be used as a trigger in Unity 5 0 Answers
Collide crafting system 0 Answers
Changing / Updating Mesh Collider without Rigidbody 1 Answer
Anyway to make my object not fall through the floor without convex? 0 Answers
How do i make a button appear when my FPSController walks through a tigger collider? 4 Answers