Character Movement and Physics Collisions - ParkinT/unity3dlabs GitHub Wiki

There are two ways to move anything in Unity3D

  1. Programmatically by changing its physical position in the world over time ( with transform.Translate)
  2. By applying Force with the Physics engine

The big difference between the two is that if you rely on the Physics engine, it will respect collisions among objects; your character will not travel through walls. Otherwise, when you directly change an object's position in space there is no expectation that collisions will block the movement.

However, you can always 'detect' the collision regardless of how an object is begin moved.