Rigidbody permite mover objetos usando el sistema de física.
private Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
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
);
La lógica física conviene aplicarla en:
void FixedUpdate()
{
}
Podés leer el input en Update y aplicar el movimiento en FixedUpdate.
rb.AddForce(Vector3.forward * fuerza);
Con modo de fuerza:
rb.AddForce(
direccion * fuerza,
ForceMode.Acceleration
);