La gravedad puede venir del sistema físico o programarse manualmente.
Si Use Gravity está habilitado, Unity aplica gravedad automáticamente.
También podés controlar la escala de gravedad manualmente.
Ejemplo:
rb.AddForce(
Physics.gravity * multiplicadorGravedad,
ForceMode.Acceleration
);
No aplica gravedad automáticamente.
velocidadVertical += gravedad * Time.deltaTime;
Después:
movimiento.y = velocidadVertical;
controller.Move(movimiento * Time.deltaTime);
Cuando está grounded:
if (controller.isGrounded && velocidadVertical < 0f)
{
velocidadVertical = -2f;
}
Un valor negativo pequeño ayuda a mantener el contacto.
[SerializeField]
private float gravedad = -20f;