Vous pouvez résoudre ce type de problème avec BlendTrees (en général, son idée judicieuse de s'appuyer souvent sur des arbres de mélange). L'arbre de fusion est une sorte d'état multi-animation qui, sur la base d'un ou de plusieurs paramètres (flottants), décide laquelle des animations qu'il contient être actuellement active (ou bien l'animation résultante peut être un mélange de plusieurs animations). Même lorsque les animations ne sont pas mélangées, mais échangées, l'échange se produit au milieu de l'animation (c'est-à-dire que si l'animation "sortant" est à 35%, la nouvelle est jouée à partir de 35%). De "l'extérieur", tout cela est caché comme s'il s'agissait d'un état simple / unique.
Par exemple, vous avez un arbre de mélange avec 8 animations de sprites (inactif avec 4 directions principales et 4 diagonales). Il y a 2 paramètres dans cet arbre de mélange - "horizontal" et "vertical". Et sur la base de ces 2 paramètres, l'arbre de fusion décidera de l'animation à jouer. En fonction du paramètre "horizontal", l'arbre de fusion choisira entre l'animation gauche / droite et le paramètre "vertical" décidera de l'animation haut / bas. Ensuite, une fois combinés, vous aurez les 8 animations avec des diagonales (c'est la même idée que derrière les joypads / joysticks).
C'est un peu déroutant donc, même si StackExchange n'aime pas les liens, je vais lier un court exemple de vidéo que j'ai fait. Remarquez la partie supérieure droite de l'écran. Les points gris sont les "états" / animations et l'actif est celui qui se ferme au point rouge. Comme dit au début, il peut être encore plus complexe et chaque animation d'avoir une influence / force basée sur sa distance au point rouge, résultant en un mélange entre plusieurs animations.
De l'extérieur, son seul état (arbre de mélange) et lorsque vous appliquez le même concept pour marcher et attaquer, vous n'aurez que 3 états liés.
Les arbres de mélange sont créés avec un clic droit sur une zone d'animateur vide Créer un état -> À partir d'un nouvel arbre de mélange. De là, tout est dans l'inspecteur. L'arbre de mélange étant sélectionné, vous pouvez choisir le type d'arbre de mélange (1D, 2D, etc.), ajouter des animations, les positionner (par rapport aux valeurs des paramètres) et sélectionner les paramètres de contrôle.
Si vous souhaitez plus d'informations sur Blend Trees, voici les vidéos d'Unity - Unite 2016 et des didacticiels Unity .