Saltar con un impulso
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 3 de 71.
AddForce acepta un segundo argumento, un ForceMode, que indica cómo usar el vector. Si no lo especificas, se usa ForceMode.Force, un empuje que dura un paso de física, así que hay que añadirlo paso tras paso. Una patada, un salto o una explosión suceden de una sola vez, y eso es ForceMode.Impulse: todo el empuje de golpe, lo que cambia la velocidad en una cantidad igual al impulso dividido por la masa.
Este balón de fútbol (0.5 kg) recibe una patada al hacer clic. Su velocidad aumenta en (0, 2, 6) / 0.5 = (0, 4, 12) m/s en el siguiente paso de física, y a partir de ahí la gravedad y el césped se encargan:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
}
}Un empuje puntual se puede llamar desde Update(), en el fotograma del clic: Unity lo conserva y lo aplica en el siguiente paso de física. Los cuatro modos se diferencian en dos aspectos: si actúan de una sola vez o durante un paso, y si tienen en cuenta la masa o no:
Force: durante un paso, dividido por la masa (motores, viento).Acceleration: durante un paso, no tiene en cuenta la masa.Impulse: todo de una sola vez, dividido por la masa (patadas, saltos).VelocityChange: todo de una sola vez, no tiene en cuenta la masa: el vector se suma directamente a la velocidad.
Desafío
FácilHaz que la rana salte una vez por cada pulsación de la barra espaciadora.
- Debajo del comentario, escribe
if (Input.GetKeyDown(KeyCode.Space)). - Dentro de él, llama a
rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse);, para que la rana cuente con 2 kg.
Pulsa «Jugar» y pulsa la barra espaciadora: la rana da un salto hacia arriba y vuelve a caer. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class FrogJump : MonoBehaviour
{
public float jumpImpulse = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Space: un impulso hacia arriba de jumpImpulse
}
}
Todas las lecciones de Física y jugabilidad
1Cuerpo rígido
Gravedad y masaEmpujar con AddForceSaltar con un impulsoFixedUpdate para físicaVelocidadCuerpos cinemáticosRepaso: plataforma de lanzamiento4Corrutinas
InvocarInvokeRepeating y CancelInvokeTu primera corrutinaBucles en corrutinasDetener corrutinasRepaso: cuenta regresiva10Proyecto: Escape de la arena
La arenaCazadores2Colisiones
OnCollisionEnter¿Qué golpeé?Romper al impactarDe pie sobre el sueloRebote y fricciónFormas de los collidersRepaso: muro destructible5Proyecto: Carrera de Monedas
La pelota rodanteMonedas para recoger3Disparadores
Colisionadores de tipo triggerOnTriggerEnterObjetos coleccionablesLas cajas guardan el restoZonas letalesEntrada y salidaRepaso: llave y puertaPractica por tu cuenta: Playground de Unity