One problem with students starting to work with Unity is to understand when colliders work and when they do not work. This very simple demonstration shows how Physics::AddForce(), CharacterController:: SimpleMove() and Translate.Transform() behaves with colliders. Moving a GameObject using Physics and CharacterController based methods interacts with collisions whereas Transform::Translate() does not as seen in the video. Moreover, Translate does not work with MonoBehavior::OnTriggerEnter().
Physics::AddForce():
public class PhysicMove : MonoBehaviour { void Start () { rigidbody.AddForce (new Vector3 (100, 0, 0)); } }
CharacterController::SimpleMove()
public class Move : MonoBehaviour { public float speed; private CharacterController controller; void Start () { controller = GetComponent (); } void Update () { controller.SimpleMove (new Vector3 (1, 0, 0) * Time.deltaTime * speed); } }
Transform::Translate()
public class MoveTranslate : MonoBehaviour { public float speed; void Start () { enabled = false; } void Update () { transform.Translate (new Vector3 (1, 0, 0) * Time.deltaTime * speed); } }