Why this is happening, when I use
onTriggerExit2D it’s fine but not in
I have to use
collision.gameObject.tag, that’s a real trick but why trigger allowing me to use
collision.tag without defining a
or explain me a collider2D and collision2D library
Collider2D is the component in the scene that defines the physical shape. When you enter the trigger, that’s the only information you get - what collider entered the trigger.
In Collision, you get the Collision2D object - it contains more detailed information about the collision; where exactly, what force was exerted at each contact point, etc. It also includes the collider and the gameObject.
To remove the confusion, just rename the collision argument in the OnTriggerEnter2D to collider, that would be more correct.
The trigger function returns the collider class and the Collision function returns the Collision parameters. A collider has tag so you can access it directly but collision class contains data such as collision points, gameobject etc. So to access tag, you need to use collision.gameObject.tag
Here is a guide to Unity Collision for beginners for better understanding.