Can the colliders can be directional ? i want the trigger enter to happen in only one direction and not in all the 4 directions of a box collider. is this possible to achieve please help.
I’m not sure how to do this for trigger colliders. But Physics colliders can do this easily. The OnCollisionEnter
method receives a Collision
object. The contact points in this object provide detailed information about where the contact occurred. With a box collider it is easy to determine the side by using the normal
.
void OnCollisionEnter(Collision collision) {
if (collision.contactPoints[0].normal == Vector3.up) {
// For a box collider aligned with the world axes, this was hit on top
}
}
This is also a good place to note that Quaternion
objects can be multiplied by Vector3
objects to rotate the vector.
Vector3 rotatedUp = transorm.rotation * Vector3.up;
Can’t be directional. If you want select collision by direction, check position of colliders in OnTriggerEnter end select what you want.
If you really want create directional box collider you can merge 6 game objects with flat box collider in 1 parent object and attach to each one appropriate functions, but i don’t recomended this way
this is a commonplace basic thing in game engineering.
you just use different colliders for each of the directions - it’s that simple.