Problème d'animation

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
MrZoD02
Messages : 2
Inscription : 22 Jan 2019 11:56

Problème d'animation

Message par MrZoD02 » 22 Jan 2019 12:21

Bonjour, alors je débute sur unity3D et je souhaite animer un personnage. J'ai reussi a l'animer de façon a quand j'appui sur z il a une animation de marche et quand j'appui sur s une animation de recul. Mon problème est que je voudrais que quand je relache une touche mon personnage arrete l'animation et reviennent a une animation "Idle".
Je ne veut pas qu'il se déplace mais bien seulement que les animation se lance lorsque j'appui sur la bonne touche et s'arrete une fois relachée.

MrZoD02
Messages : 2
Inscription : 22 Jan 2019 11:56

Re: Problème d'animation

Message par MrZoD02 » 22 Jan 2019 12:41

J'ai reussi a résoudre en partie mon problème grâce a GetKeyDown et GetKeyUp j'ai juste parfois un petit bug l'animation veut plus se lancer.

Avatar de l’utilisateur
Sebela
Messages : 141
Inscription : 25 Juin 2014 21:39

Re: Problème d'animation

Message par Sebela » 22 Jan 2019 13:13

Hello,

Est-ce que tu utilises un animator ? Il est facile de gérer ce genre de scénarios avec.

Si tu veux lancer l'animation idle lorsque aucune touche n'est pressée, tu peux faire :

Code : Tout sélectionner

public class MaClasse{
	private enum Animations{
		Forward,
		Backward,
		Idle
	}
	[SerializedField]
	private Animator _myAnim;
	private Animations _anims;
	
	...
	
	public void Update(){
	
		if (!Input.anyKey && _anim != Animations.Idle){
			_myAnim.SetTrigger("Idle");
			_anims = Animations.Idle;
		}
		
		if (Input.GetKeyDown(KeyCode.up) && _anim != Animations.Forward){
			_myAnim.SetTrigger("Forward");
			_anims = Animations.Forward;
		}
		else if (Input.GetKeyDown(KeyCode.down) && _anim != Animations.Backward){
			_myAnim.SetTrigger("Backward");
			_anims = Animations.Backward;
		}
	
	}

}

Ps : Voilà l'idée générale. A adapter à ton besoin, et j'ai pas testé :)

Répondre

Revenir vers « Unity le logiciel »