Home > Software engineering >  Unity trigger not triggering
Unity trigger not triggering

Time:07-08

I'm having one of the most basic issue but I really can't get it work on my project. I even tried to re-create a blank project and create a similar situation, in this new project, the trigger is working well but not in my old one and I can't figure out why so I'm looking for help here.

Here is some explanation on what I have, first, the character :

 My character with : 
      Box Collider 2D with NOTHING check (so isTrigger, used by effector, etc, they are NOT checked) 
      Rigidbody 2D Dynamic, simulated, continuous and stat awake.

Then, the platform prefab :

 Platform prefab (BoxCollider2D with Used By Effector, Platform Effector 2D)
    Child of platform prefab > front part (just a sprite renderer)
    Child of platform prefab > triggerPart (Empty object scale 4,1,1 with BoxCollider2D with is Trigger checked and the script "triggerBounce"

Here is the script triggerBounce : (For now, I'm just trying to see if the trigger is working)

private void OnTriggerEnter2D(Collider2D collision) 
     {Debug.Log("triger in "   name   " "   collision.name);}
 
 private void OnTriggerStay2D(Collider2D collision)
     {Debug.Log("triger stay "   name   " "   collision.name);}
 
 private void OnTriggerExit2D(Collider2D collision)
     {Debug.Log("triger exit "   name   " "   collision.name);}

I searched a lot of help on the internet before posting this, like this :

  • Putting all the element on the same Z position to be sure they're triggering
  • Reproducing the most simple situation, which I made work in an other project, but not in this one
  • I checked that in my project settings > physics 2D the Y gravity was -9.81
  • I tried resizing the boxCollider2D size
  • Verified the script triggerBounce was launched by debug.log("start") in his start

And even tough I did all this, it doesn't work any better.

Here is a pic of the situation, it can help you understand the problem : enter image description here

CodePudding user response:

Thanks to @Morion, I found what the problem was.

All my GameObject had the "default" layer and the collision matrix wasn't checked for 2 default.

So, I went to Edit > Project Settings > Physics 2D

and check the box where the row and column was default.

Collision matrix

  • Related