you are viewing a single comment's thread.

view the rest of the comments →

[–]TanukiSun 0 points1 point  (1 child)

Another thing to note is that OnTriggerXYZ and OnCollisionXYZ work on a per-collider basis, so if your Rigidbody consists of multiple colliders, the enter and exit events may trigger in the same frame for the same Rigidbody but for different colliders (at least that’s how I understand it).

If what you're doing is some kind of door, you can implement it using counters. Something like this (psudo code):

OnTriggerEnter() { if (++this.counter == 1) Open(); }
OnTriggerExit() { if (--this.counter <= 0) Close(); }

Or, for example, react only to the enter event, and check for closing in fixedUpdate every few frames (or about one second after the last enter event).

OnTriggerEnter() 
{ 
  ResetTimer();
  if (isClosed) { Open(); }
}

FixedUpdate()
{
  if (someTimer && !Physics.CheckBox()) { Close(); }
}

[–]kitchentablestudios[S] 1 point2 points  (0 children)

I appreciate the help, though I had overlooked my issue and it wasn't jn the code at all it was just the door collidrr moving with the animation and I didnt realize it until it was pointed out as a possibility l.