Rigidbody permite mover objetos usando el sistema de física.

Obtener referencia

private Rigidbody rb;

void Awake()
{
    rb = GetComponent<Rigidbody>();
}

Mover con linearVelocity

En Unity 6, Rigidbody.linearVelocity representa la velocidad lineal.

Vector3 velocidadActual = rb.linearVelocity;

Mover manteniendo la velocidad vertical:

Vector3 movimiento = new Vector3(input.x, 0f, input.y) * velocidad;

rb.linearVelocity = new Vector3(
    movimiento.x,
    rb.linearVelocity.y,
    movimiento.z
);

FixedUpdate

La lógica física conviene aplicarla en:

void FixedUpdate()
{
}

Podés leer el input en Update y aplicar el movimiento en FixedUpdate.


AddForce

rb.AddForce(Vector3.forward * fuerza);

Con modo de fuerza:

rb.AddForce(
    direccion * fuerza,
    ForceMode.Acceleration
);