How can I detect collisions with onCollisionEnter and without a Rigidbody / Is Trigger (true)?,How can you detect collision with onCollisionEnter without a Rigidbody and without Is Trigger?


So my Player object has a Rigidbody and a script with all controlls needed. The thing is that I have a collider and a script with the onCollisionEnter method at Cylinder, that apperently doesn´t get called if I don´t have a Rigidbody at the cylinder. And I don´t want to use Is Triggered, because then the collider loses its ability to physically stop other things to phase through it. Basically I just want a Player object that is an empty object and controlls the input and an extra collision object that is a child of the Player object that manages the player collision. Later I want multiple colliders that all have their own behaviour and physical collision.

whats your exact issue? your capsule isnt sending collision messages to the player? the player has both collider and rigibdoy? the capsule doesnt need a rigidbody for collisions, just one of the objects must have the rigidbody.

Good news! You can call OnTriggerEnter on regular colliders. It just doesn’t work the other way around.
Edit (Elaboration):
A physical collider not set to trigger can still have OnTriggerEnter/Exit/Stay called correctly. It’s only that Triggers can’t call OnCollisionEnter/Exit/Stay. That said, the object colliding with the non-trigger collider will need a trigger and rigidbody for the detection to take place. A good way to handle this would be to attach a trigger collider to your player that other physical colliders can detect.
The Collision Action Matrix on this page will show you what the requirements are for OnCollision and OnTrigger events to be called.