La física de Unity se actualiza a pasos fijos.
void FixedUpdate()
{
rb.AddForce(Vector3.forward * fuerza);
}
Representa el intervalo entre pasos físicos.
Debug.Log(Time.fixedDeltaTime);
Buena práctica:
Update
→ leer input
FixedUpdate
→ aplicar física
private Vector2 input;
void Update()
{
input = moveAction.action.ReadValue<Vector2>();
}
void FixedUpdate()
{
Vector3 direccion =
new Vector3(input.x, 0f, input.y);
rb.AddForce(
direccion * fuerza,
ForceMode.Acceleration
);
}
Botones muy cortos pueden no coincidir con un paso físico.
Por eso conviene detectar pulsaciones en Update.