Move object without rigid body...?

I want to move an object without a rigid body. That’s simple, use transform.Translate.

BUT… That doesn’t take into account collision! How would I move the object without using a rigid body, but with collision?

The built-in physics system that collision-detection relies on uses the Rigidbody to say “keep track of this object when it moves”, and Colliders to say “this is an obstacle”. Objects that move around AND need to bump into things require both. If you want to use a Rigidbody without moving the object around with physics forces, then set IsKinematic- it’ll still be tracked and it can still create collisions, but it won’t move with physics and physics won’t directly affect it. This is useful for things like moving platforms and characters whose positions need to be updated in the physics engine each frame, but are controlled manually with direct transform.translates, animations, or tweens.

If you need to be able to test for collisions but don’t want to use Rigidbodies at all, you’ll need to implement a combination of Raycasts, CheckBox / CheckSphere / CheckCapsule functions, and OverlapBox / OverlapSphere / OverlapCapsule functions, all in the Physics static class here. I would recommend just using IsKinematic though, as the physics engine is far more efficient at doing those checks for you rather than handling it manually.

Even though he states he does not want to use Rigidbodies, I think a lot of people search for this answer I found in this thread: