transform.translate:
С помощью этого метода вы в основном телетранспортируете GameObject, не принимая во внимание физику и коллайдеры.Это довольно дорого, если у вас есть RigidBody.
AddForce:
С этим вы добавляете силу к RigidBody объекта GameObject, поэтому все движениябудет учитывать физику и коллайдеры.
Если вам нужно переместить RigidBody (как игрок), я рекомендую использовать MovePosition .Он более точен, чем AddForce, и использует физический двигатель.
РЕДАКТИРОВАТЬ:
Пример:
public float movementSpeed= 5f; //for instance
void FixedUpdate()
{
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0 , Input.GetAxisRaw("Vertical"));
rigidbody.MovePosition(transform.position + direction * movementSpeed * Time.fixedDeltaTime);
}
Настроить движение Ускорение, чтобы двигаться быстрее или медленнее.
Не тестировал код, но он должен работать.