Gravedad y masa
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 1 de 71.
Un componente Rigidbody entrega su objeto a la física de Unity, igual que cuando añadiste uno en Add a Component. A partir de entonces, la gravedad acelera el objeto 9.81 m/s cada segundo, y el Rigidbody tiene ajustes que determinan cómo. Dos de ellos son mass, en kilogramos (1 para un Rigidbody nuevo), y useGravity (activado para un Rigidbody nuevo).
La masa no cambia la rapidez con la que caen las cosas. La gravedad tira con más fuerza de un cuerpo pesado, y cuesta exactamente lo mismo acelerar el cuerpo pesado, así que una caja de 1 kg y un yunque de 50 kg que se dejan caer desde la misma altura aterrizan en el mismo fotograma. La masa importa cuando los cuerpos se empujan entre sí: el yunque aparta la caja, y la caja apenas mueve el yunque. Este globo de fiesta tiene una masa ligera y la gravedad lo deja en paz, así que queda suspendido donde lo colocó la escena:
void Start()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.mass = 0.2f;
rb.useGravity = false;
}Con useGravity desactivado, el globo sigue teniendo masa y sigue moviéndose cuando algo choca con él: solo deja de actuar la gravedad. Vuelve a establecerlo en true y la gravedad vuelve a tirar de él desde donde esté el objeto. En la física de Unity tampoco hay aire, así que una pluma cae como un ladrillo, a menos que le des a su Rigidbody algo de amortiguación lineal.
Desafío
FácilCuelga las dos cajas y luego suéltalas juntas al pulsar la barra espaciadora.
- En
Start(), debajo de la líneaGetComponent, establecerb.mass = weight;yrb.useGravity = false;. - En
Update(), cuando se pulseInput.GetKeyDown(KeyCode.Space), establecerb.useGravity = true;.
Pulsa «Jugar» y pulsa la barra espaciadora: la caja fuerte pesada y la caja ligera aterrizan juntas. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class CraneLoad : MonoBehaviour
{
public float weight = 1f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
// Establece la masa en weight y desactiva la gravedad
}
void Update()
{
// Space: permite que la gravedad vuelva a actuar
}
}
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