2D collision without simulating rigid bodies

Hello, I know issues with collision detection get posted here a lot but after searching through dozens of threads with no results I believe I have a unique situation.

Basically, I’m working on a single prefab that I plan to spawn multiple of and have them moving around my scene. Right now they have a Circle Collider 2D component, a Rigidbody 2D component, and a script that controls their movement and contains the collision/trigger functions I’m trying to make work. Without getting into the details of the game, they need to be able to detect collision with each other without actually moving or affecting each other. I’m just looking to call one of the various OnTrigger2D or OnCollision2D functions.

After messing around a lot with the various settings on both physics components, no combination seems to have any results unless I have “Simulated” checked on the rigid body. The problem with this is that when that’s true my objects can’t pass through each other like I need them to, but when it is false no collision detection of any kind occurs. This wouldn’t be a problem if I could somehow make only one of them in any collision simulated, but like I said this is a single prefab so I need a single setup that will always work.

This is more of a theoretical question and I simply want to know if it’s possible to detect objects overlapping without any of the involved objects having a simulated rigid body. Thank you!

You must have Rigidbody2D.simulated turned on otherwise it, its colliders and joints are taken out of the simulation as if you’d never added them so don’t use that unless you want these ignored completely.

You’re describing not wanting a collision response. If this is the case then simply set the Rigidbody2D.bodyType to be Kinematic so there’s no collision response. Normally Kinematic do not contact Kinematic (they do not produce any contacts and go through each other) which is why you then need to set Rigidbody2D.useFullKinematicContacts to be true.