Добавление компонента Rigidbody к игровому объекту позволяет передать движение этого объекта под контроль физического движка Unity. Поскольку физическое тело подвержено влиянию различных сил, то перемещать его необходимо путем прикладывания этих сил к исходному объекту. Причем делать это необходимо в методе FixedUpdate(), так как этот метод вызывается непосредственно перед каждым обновлением физики, поэтому любые сделанные там изменения будут выполняться точно синхронно с самим физическим движком...