Home | Clases | Unity: Animación en 2D | Animación Dead (Morir)

Animación Dead (Morir)


Crear animación

Para finalizar, añadiremos la animación de morir (dead), que crearemos de forma similar a la anterior y se reproducirá cuando el Jugador pise una trampa:

  • Arrastra ahora todos lo sprites de Assets > Sprites > Jugador llamados Dead (1) a Dead (12) al objeto Jugador.
  • Una nueva ventana indicará que se va a crear una nueva animación, la llamamos Dead y la guardamos dentro de Assets > Animations > Jugador.
  • El Animator ya no se crea, pues ya estaba creado antes y se utiliza el mismo.


Selecciona la animación Dead y en la Inspector window, asegúrate de desmarcar la casilla Loop Time, ya que en este caso no queremos que la animación se reproduzca en bucle, sino solo una vez.

Flujo de las animaciones

Si ahora abres la ventana Window > Animation > Animator, puedes ver el flujo de las animaciones del Jugador: Idle, que es la animación por defecto, Walk y Dead, con las transiciones creadas en apartados anteriores y Dead, que estará "aislada".

Añade una transición, solo de ida ya que el jugador ya no tiene que volver a otro estado, entre los estados parado (Idle) y morir (Dead), y otra entre los estados andar (Walk) y morir (Dead) de la ventana Animator.

Añade además, a la izquierda de la lista de Parameters un nuevo bool llamado isDead, que nos servirá de condición para cambiar de animación desde el script:



  • Selecciona la transición que va de Idle a Dead y, en la Inspector window, desactiva Has Exit Time (porque vamos a usar una condición) y añade en Conditions la condición isDead con el valor true.
  • Selecciona la transición que va de Walk a Dead y, en la Inspector window, desactiva Has Exit Time (porque vamos a usar una condición) y añade en Conditions la condición isDead con el valor true.


Trampa

Habíamos dicho antes que el Jugador se muere cuando pise una trampa:

  • Arrastra cualquier sprite que sirva de trampa desde Assets > Sprites >Objetos a la escena y llámalo Trampa.
  • Añade a dicho objeto un Box Collider 2D, marca la propiedad isTrigger y, si es necesario ajusta su collider.
  • Añade una nueva etiqueta o tag llamada Trampa y asígnasela al objeto Trampa.


Script

Ya solo faltaría modificar el script del Jugadory añadir el método OnTriggerEnter2D para que detecte que el Jugador ha pisado la trampa, reproduzca la animación de morir y deshabilite el script del Jugador para que no se siga moviendo:


private void OnTriggerEnter2D(Collider2D other)
{

//Si el jugador pisa un objeto con la etiqueta trampa
if (other.gameObject.CompareTag("Trampa"))
{
//Reproduzco la animación de morir
animator.SetBool("isDead", true);
//Deshabilito el script para que ya no se mueva más
GetComponent<Jugador>().enabled = false;

}
}



Ejercicios propuestos

  • Modifica el código anterior para que el Jugador no se quede flotando en el aire cuando se muera.
  • Realiza el resto de animaciones para la Jugadora.
  • Realiza el resto de animaciones para el Enemigo.


Fecha de publicación: 14/04/2020
Asignaturas: realización de proyectos multimedia interactivosdesarrollo de entornos interactivos multidispositivo
Temas: unity 2d animación
Utilizamos cookies propias y de terceros para mejorar su experiencia en la navegación. Al seguir navegando entendemos que acepta su uso.
Si lo desea, consulte nuestras políticas de privacidad y cookies
ENTENDIDO
[X] Cerrar

Contacta conmigo


[X] Cerrar

Acceso alumnos