O que eu acertei?
Parte da seção Física e jogabilidade do Journey de Unity da Coddy. Lição 9 de 63.
O Collision que o Unity passa para OnCollisionEnter descreve o outro lado do contato. collision.gameObject é o objeto com o qual você colidiu, então collision.gameObject.name é o nome dele, e collision.gameObject.CompareTag("Hazard") verifica a tag dele. (collision.collider é o collider exato que você tocou, quando um objeto tem vários.)
Este carrinho de bate-bate registra tudo com que colide e reclama de perigos:
void OnCollisionEnter(Collision collision)
{
Debug.Log("Bumped into " + collision.gameObject.name);
if (collision.gameObject.CompareTag("Hazard"))
{
Debug.Log("Ouch!");
}
}A primeira linha que ele registra é Bumped into Floor, no momento em que o jogo começa: o chão em que ele está também é uma colisão. Portanto, um script que reage a impactos sempre verifica primeiro o que atingiu. Preste atenção a qual objeto você nomeia: CompareTag("Hazard") sozinho verifica o seu próprio objeto, e Destroy(gameObject) destrói o seu próprio objeto, enquanto Destroy(collision.gameObject) remove aquele que você atingiu.
Desafio
FácilDirija o limpa-neve com as setas (já escritas) e dê uma tarefa a ele. Os dois blocos brancos estão marcados com Snow.
- Quando o limpa-neve bater em um objeto marcado com
Snow, destrua esse bloco, adicione 1 à contagem e registre:Cleared 1,Cleared 2. - Todo o resto em que o limpa-neve tocar, incluindo o chão e a parede, permanece onde está.
Pressione Jogar e limpe a estrada; depois, Verificar.
Experimente você mesmo
using UnityEngine;
public class Plow : MonoBehaviour
{
public float speed = 3f;
private Rigidbody rb;
private int cleared;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
float h = Input.GetAxisRaw("Horizontal");
rb.linearVelocity = new Vector3(h * speed, rb.linearVelocity.y, 0);
}
// Neve que o limpa-neve atingir: destrua-a, conte-a e registre a contagem
}
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