El bloque
Lo primero que haremos será generar una caja en nuestra escena, que será el que nuestro
Jugador tendrá que destruir.
Dicho bloque será un
Cube con un nuevo material llamado
Caja de color verde, al que además le vamos a añadir un componente de tipo
Particle System que se activará cuando el
Jugador lo destruya, así como un
BoxCollider con la opción
Is Trigger seleccionada.
El resultado podría ser similar al siguiente:
El script JugadorController
Una vez generado, solos nos faltaría modificar el script de
JugadorController para que detecte la caja. Para ello, modifica su método
OnTriggerEnter() de modo que
dentro incluya el siguiente condicional:
//Si toca la caja
if (other.gameObject.CompareTag("Caja")){
//Si está pulsando el botón de pegar
if (Input.GetButton("Fire1")){
//Capturo el sistema de partículas de la caja y lo reproduzco
other.gameObject.GetComponent<ParticleSystem>().Play();
//Oculto objeto tras un tiempo
StartCoroutine(ocultarObjeto(other.gameObject));
}
else{
//Reproduzco la animación de morir
animator.SetBool("isDead", true);
//Corutina para cambiar el Collider
StartCoroutine(cambiarCollider());
//Deshabilito el script par aque ya no se mueva más
GetComponent<JugadorController>().enabled = false;
}
}
Y para finalizar, añade el método
ocultarObjeto(), que se encargará de esperar un tiempo antes de ocultar la caja, de manera que de tiempo a reproducir la animación del sistema de partículas antes de que se oculte.
//Esperar
IEnumerator ocultarObjeto(GameObject objeto){
//Espero 1 segundos
yield return new WaitForSeconds(1.0f);
//Oculto objeto
objeto.SetActive(false);
}
Con esto estaría finalizado nuestro proyecto de animación de un humanoide.