jairogarcíarincón
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 tiene que morir 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:
Ejercicios propuestos
- Modifica el código anterior para que el Jugador no se quede flotando en el aire cuando se muera y no se pueda mover (pues ya está muerto, aunque sea un zombi).
- Repite todo el tutorial de nuevo por tu cuenta en nuevo proyecto, para afianzar los conceptos, en este caso utilizando los assets de la Jugadora o del Enemigo (o el que no hubieras usado antes).
Publicado el 03 de Diciembre de 2024
unity2danimación