Menu
CoddyTech

Gravidade e Massa

Parte da seção Física e jogabilidade do Journey de Unity da Coddy. Lição 1 de 63.

Um Rigidbody entrega seu objeto à física do Unity, como o coco mostrou ao cair. A partir daí, a gravidade acelera o objeto em 9.81 m/s a cada segundo, e o Rigidbody tem configurações que determinam como isso acontece. Duas delas são mass, em quilogramas (1 para um Rigidbody novo), e useGravity (ativado para um Rigidbody novo).

A massa não altera a velocidade com que os objetos caem. A gravidade puxa um corpo pesado com mais força, e é exatamente na mesma proporção que é mais difícil acelerar esse corpo pesado; por isso, uma caixa de 1 kg e uma bigorna de 50 kg, soltas da mesma altura, aterrissam no mesmo quadro. A massa importa quando os corpos empurram uns aos outros: a bigorna empurra a caixa para o lado, e a caixa mal consegue mover a bigorna. Este balão de festa recebe uma massa leve e fica sem a ação da gravidade, então paira onde a cena o colocou:

void Start()
{
    Rigidbody rb = GetComponent<Rigidbody>();
    rb.mass = 0.2f;
    rb.useGravity = false;
}

Com useGravity desativado, o balão ainda tem sua massa e ainda se move quando algo esbarra nele: apenas a gravidade para de puxá-lo. Defina-o novamente como true e a gravidade volta a puxar o objeto de onde quer que ele esteja. Também não há ar na física do Unity, então uma pena cai como um tijolo, a menos que você dê ao Rigidbody um pouco de Amortecimento linear.

challenge icon

Desafio

Fácil

O guindaste mantém duas caixas suspensas sobre o cais: um Safe pesado e uma Box leve. Ambos têm um Rigidbody e um script CraneLoad, cujo weight o Inspector define (80 no Safe, 2 na Box).

  • Quando o jogo começar, defina a massa do Rigidbody como weight e impeça que a gravidade puxe a caixa, para que ela fique suspensa onde está.
  • Quando a tecla Space for pressionada, deixe a gravidade puxá-la novamente, para que ela caia.

Pressione Play, pressione Space e observe qual caixa chega primeiro ao chão; em seguida, Check.

Experimente você mesmo

using UnityEngine;

public class CraneLoad : MonoBehaviour
{
    public float weight = 1f;

    void Start()
    {
        // Defina a massa como weight e impeça que a gravidade puxe
    }

    void Update()
    {
        // Space: deixe a gravidade puxar novamente
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Física e jogabilidade