jairogarcíarincón

Andar

Para que el jugador ande, de alguna forma necesitamos decirle al Animator que efectivamente se está moviendo. Para ello utilizamos el listado de parámetros del Animator del Jugador, que ahora mismo está vacío:



Haz clic en el icono + a la derecha de dicho listado y añade un nuevo bool llamado isWalking. Inicialmente estará desmarcado (false) y lo pondremos a true cuando haya movimiento para indicar al Animator que debe cambiar de estado:



Selecciona ahora la transición que va de parado (Idle) a andar (Walk) y, en el Inspector de la derecha, agrega una nueva condición (Conditions) que sea isWalking = true. Además, desactiva la opción Has Exit Time:



De la misma manera, selecciona la transición que va de andar (Walk) a parado (Idle) y, en el Inspector de la derecha, agrega una nueva condición (Conditions) que sea isWalking = false. Desactiva de nuevo la opción Has Exit Time:



A continuación debemos modificar el script JugadorController de modo que tengamos acceso al Animator para cambiar el valor de la variable isWalking en función del movimiento del jugador.

Declara la siguiente variable:


//Declaro la variable para las animaciones

private Animator animator;


Captura el componente en el método Start():


//Capturo el componente Animator del Jugador

animator = GetComponent<Animator>();



Y añade el siguiente condicional al final del método FixedUpdate():


//Animación de andar

if (movimiento != Vector3.zero)

{
animator.SetBool("isWalking", true);

}
else
{

 animator.SetBool("isWalking", false);

}



Si ahora ejecutas el juego, el Jugador debería reproducir la animación de andar cuando se encuentre en movimiento, si bien dicha animación se parará enseguida dado que no hemos indicado que se reproduzca en bucle (loop).

Para ello, accede a tu modelo y en la pestaña Animation del Inspector, selecciona Human Armature | Walk, marca la casilla Loop Time y haz clic en Apply.




Ejercicio propuesto 3
Añade la interactividad necesaria para que el jugador realice la animación del salto cuando esté quieto o andando.


Publicado el 02 de Diciembre de 2021

unityanimaciónhumanoide3d