Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

La 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 weight y 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
    }
}
quiz iconPonte a prueba

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