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.
Desafio
FácilA 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
strengthchega 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
}
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
1Rigidbody
Gravidade e MassaEmpurrar com AddForcePular com um ImpulsoFixedUpdate para FísicaVelocidadeCorpos CinemáticosRevisão: Plataforma de Lançamento2Colisões
OnCollisionEnterO que eu acertei?Quebre no impactoNo chãoQuique e atritoFormas dos collidersRevisão: Parede destrutível5Projeto: Corrida das Moedas
A Bola RolanteMoedas para Coletar