Puede resolver este tipo de problema con BlendTrees (en general, es una buena idea confiar en los árboles de mezcla). El árbol de mezcla es una especie de estado de animación múltiple que, en función de un parámetro (flotante), decide cuál de las animaciones que contiene está actualmente activa (o, como alternativa, la animación resultante puede ser una mezcla de varias animaciones). Incluso cuando las animaciones no se mezclan, sino que se intercambian, el intercambio ocurre a mitad de la animación (es decir, si la animación "saliente" está al 35%, la nueva se reproduce desde el 35% hacia adelante). Desde el "exterior", todo esto está oculto como si fuera un estado simple / único.
Por ejemplo, tiene un árbol de mezcla con 8 animaciones de sprites (inactivo con 4 direcciones principales y 4 diagonales). Hay 2 parámetros en este árbol de mezcla: "horizontal" y "vertical". Y basándose en esos 2 parámetros, el árbol de mezcla decidirá qué animación reproducir. Según el parámetro "horizontal", el árbol de mezcla elegirá entre la animación izquierda / derecha y el parámetro "vertical" decidirá la animación superior / inferior. Luego, cuando se combinan, tendrás las 8 animaciones con diagonales (es la misma idea que está detrás de los joypads / joysticks).
Es un poco confuso, así que, incluso si a StackExchange no le gustan los enlaces, vincularé breve video de ejemplo que hice. Observe la parte superior derecha de la pantalla. Los puntos grises son los "estados" / animaciones y el activo es el que se cierra al punto rojo. Como se dijo al principio, puede ser aún más complejo y cada animación tiene una influencia / fuerza basada en su distancia al punto rojo, lo que resulta en una mezcla entre varias animaciones.
Desde el exterior es solo un estado (árbol de mezcla) y cuando aplica el mismo concepto para caminar y atacar tendrá solo 3 estados vinculados.
Los árboles de mezcla se crean con un clic derecho en un área vacía del Animador Crear estado -> Desde nuevo árbol de mezcla. A partir de ahí, todo está en el Inspector. Con el árbol de mezcla seleccionado, puede elegir el tipo de árbol de mezcla (1D, 2D, etc.), agregar animaciones, colocarlas (en relación con los valores de los parámetros) y seleccionar los parámetros de control.
Si desea obtener más información sobre Blend Trees, a continuación encontrará videos de Unity - Unite 2016 y Unity Tutorials .