Object's pass through each other?

OK so this has always been a main problem when I use unity. Object’s simply pass through each other even when they have colliders and they are not triggers. I tried adding a rigidbody but the movement for my main character is to buggy. So what am I missing? Anything will help thanks a bunch!

For Unity to correctly detect collisions, at least one object involved must have a non-kinematic rigidbody. If you are moving objects around, and you want them to respond correctly to physics, you must A: put a rigidbody on them and B: move them via the ‘rigidbody.AddForce’ method.

If your movement is performed by either overriding transform.position or using transform.Translate, the result will not be adjusted by physics. The only effect this will have on physics simulation is the displacement of other rigidbodies that it comes into contact with.

If your object cannot have a rigidbody (for whatever reason), you will have to write your own collision detection algorithms. A collider alone does not manage physics- all it does is provide an object for rigidbodies to interact with.

rigidbody is a must on at least one object for collider detection.And you can add the rigidbody to other object instead of your character.