Menu
CoddyTech

Quebre no impacto

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

Quão forte foi o impacto? collision.relativeVelocity é a velocidade com que os dois objetos estavam se aproximando um do outro no momento em que colidiram, e sua magnitude é a velocidade do impacto em m/s. É uma diferença entre velocidades: um carro a 10 m/s que colide com um carro que vai na mesma direção a 8 m/s atinge-o a apenas 2 m/s, e os dois carros registram a mesma velocidade de impacto.

Este ovo quebra quando aterrissa a uma velocidade superior a crackSpeed. Solto de 1 m, ele atinge o chão a cerca de 4.4 m/s (a raiz quadrada de 2 x 9.81 x 1), e, de 2 m, a cerca de 6.3 m/s:

public float crackSpeed = 5f;

void OnCollisionEnter(Collision collision)
{
    if (collision.relativeVelocity.magnitude > crackSpeed)
    {
        Debug.Log("Splat!");
        Destroy(gameObject);
    }
}

Por que não usar o próprio rb.linearVelocity do ovo? Quando OnCollisionEnter é executado, a física já processou o impacto, então a velocidade do ovo é o que resta depois dele, próxima de zero. relativeVelocity mantém a velocidade do próprio impacto. Como é uma velocidade, a massa não influencia: um ovo pesado e um leve que aterrissam a 6 m/s registram o mesmo valor: 6.

challenge icon

Desafio

Fácil

A bola rola em direção à janela: a seta para cima a faz rolar suavemente, a tecla Space a faz rolar com força (Bowler.cs, já escrito). Escreva Window.cs. A janela tem uma strength (10 no Inspector).

  • Cada impacto enfraquece a janela de acordo com sua velocidade: um impacto a 2 m/s subtrai 2 de strength.
  • Quando strength chega a 0 ou menos, a janela se estilhaça: destrua a janela.

Pressione Play, role algumas bolas suavemente e depois uma com força, então Check.

Experimente você mesmo

using UnityEngine;

public class Window : MonoBehaviour
{
    public float strength = 10f;

    // Cada impacto subtrai sua velocidade de impacto de strength; ao chegar a 0, a janela se estilhaça
}
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