jairogarcíarincón

Animación Attack (Atacar)


1.06K

Crear animación

La siguiente animación que vamos a añadir es la de atacar (attack), que crearemos de forma similar a la anterior:

  • Arrastra ahora todos lo sprites de Assets > Sprites > Jugador llamados Attack (1) a Attack (8) al objeto Jugador.
  • Una nueva ventana indicará que se va a crear una nueva animación, la llamamos Attack 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 Attack 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, con las transiciones creadas en el apartado anterior y Attack, que estará "aislada".

Añade dos transiciones, una en cada sentido, entre los estados parado (Idle) y atacar (Attack), y dos transiciones, una en cada sentido, entre los estados andar (Walk) y atacar (Attack) de la ventana Animator.

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



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


Script

Ya solo faltaría modificar el script del Jugador para que reproduzca la animación cuando se pulse el botón de Fire1, que corresponde al clic izquierdo del ratón. Para ello, añade dentro del método FixedUpdate y después del código de salto, las siguientes líneas:


//Atacar
if (Input.GetButtonDown("Fire1"))
{
animator.SetBool("isAttacking", true);
}
else
{
animator.SetBool("isAttacking", false);
}


Publicado el 20 de Septiembre de 2021

unity2danimación