A Collision2D's "collider" refers to the other guy's collider, while its "otherCollider" refers to my own - That's confusing and should be the other way around

The problem begins with the names of the properties.

When we’re talking about a collision (involving two colliders) and there’s a property named collider and another named otherCollider, it isn’t reasonable to expect otherCollider to refer to anything else but the other guy (and not ourselves). In the current implementation of Collision2D, however, otherCollider refers to ourselves and collider refers to the other guy. That’s not only unintuitive, but confusing and contrary to what semantics or common sense would dictate.

The problem is further exacerbated by how the documentation describes collider as the “incoming” collider (like it matters who’s “coming”, or moving, or whatever - it doesn’t) and otherCollider as the “other” collider involved. It not only doesn’t help, but exacerbates the problem with further usage of “other” with inverted semantics in the description of the property.

In short, collider (or thisCollider) should be the one that refers to ourselves (the collider attached to the GameObject running the script), and otherCollider, which is the worst offender, should be the one that refers to the other guy (the collider we collided with), and not the other way around, which is how it’s currently implemented.

The current implementation, besides very confusing, is detrimental to code clarity and logic and to the learning process.

I spent a whole day trying to figure out “why my game is inverting the properties” before realizing that’s actually how they’re implemented.