Gravedad y masa
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 1 de 63.
Un Rigidbody entrega su objeto a la física de Unity, como mostró el coco cuando cayó. A partir de entonces, la gravedad acelera el objeto a 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 velocidad a la que caen las cosas. La gravedad tira con más fuerza de un cuerpo pesado, y cuesta exactamente lo mismo más acelerar el cuerpo pesado, así que una caja de 1 kg y un yunque de 50 kg soltados 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 poca masa y la gravedad no lo afecta, 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 contra él: solo deja de tirar de él la gravedad. Vuelve a establecerlo en true y la gravedad vuelve a tirar de él desde dondequiera que esté el objeto. Tampoco hay aire en la física de Unity, así que una pluma cae como un ladrillo, a menos que le des a su Rigidbody algo de amortiguación lineal.
Desafío
FácilLa grúa sostiene dos cajas sobre el muelle: una Safe pesada y una Box ligera. Ambas tienen un Rigidbody y un script CraneLoad cuyo weight establece el Inspector (80 en Safe, 2 en Box).
- Cuando empiece el juego, establece la masa del Rigidbody en
weighty detén la gravedad para que la caja quede suspendida donde está. - Cuando se presione Space, deja que la gravedad vuelva a actuar para que caiga.
Presiona Play, presiona Space y observa qué caja aterriza primero; después, Check.
Pruébalo tú mismo
using UnityEngine;
public class CraneLoad : MonoBehaviour
{
public float weight = 1f;
void Start()
{
// Establece la masa en weight y desactiva la gravedad
}
void Update()
{
// Space: permite que la gravedad vuelva a actuar
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 lanzamiento2Colisiones
OnCollisionEnter¿Qué golpeé?Romper al impactarDe pie sobre el sueloRebote y fricciónFormas de los collidersRepaso: muro destructible5Proyecto: Carrera de monedas
La bola rodanteMonedas para recoger