Unity how to play animation

Unity Play animation

Sur Unity, il est possible de jouer des animations de trois manières distinctes, chacune offrant une utilité unique.

Peu importe la méthode choisie, vous aurez besoin d’un composant Animator contenant vos états d’animation.

Table des matières

Onglet d'animateur Unity

Comment jouer une animation sans paramètres

Pour lancer une animation dans le code, nous utilisons la propriété « Play » contenu dans notre « Animator« :

using UnityEngine;

public class AnimatorTest : MonoBehaviour
{
    public Animator animator;

    private int idleHash;

    private void Awake()
    {
        idleHash = Animator.StringToHash("Idle");
    }

    public void Start()
    {
        animator.Play(idleHash);
    }
}
    

Cette approche est particulièrement avantageuse lorsque vous souhaitez un contrôle complet via le code.

L’utilisation de Animator.StringToHash améliore les performances, car il précalcule un hachage du nom de l’état d’animation.

Bien que cette optimisation n’ait pas un impact significatif lors d’un seul appel, elle devient essentielle dans des scénarios avec de nombreux changements d’état, tels que dans une boucle « Update ».

Utilisation des paramètres booléens

  1. Ouvrez l’onglet de l’animateur.
  2. Créez un paramètre booléen nommé « isWalk ».
  3. Établissez une transition de l’état « Idle » à l’état « Walk ».
  4. Définissez la condition « isWalk » comme vrai.

Comment jouer une animation booléenne Unity

Ensuite pour lancer l’animation nous utilisons cette fois-ci la propriété « SetBool » pour passer notre boolean à true.

using UnityEngine;

public class AnimatorTest : MonoBehaviour
{
    public Animator animator;

    private int _isWalkHash;

    private
    void Awake()
    {
        _isWalkHash = Animator.StringToHash("isWalk");
    }

    public void Start()
    {
        animator.SetBool(_isWalkHash, true);
    }
}
    

L’utilisation de paramètres booléens est particulièrement bénéfique lorsque vous souhaitez démarrer une animation lorsque un booléen devient vrai et l’arrêter lorsque le booléen devient faux.

Cette méthode est idéale pour les animations comme les cycles de marche des personnages.

Utilisation des paramètres trigger

  1. Accédez à l’onglet de l’animateur.
  2. Générez un paramètre trigger nommé « isWalk ».
  3. Définissez une transition de l’état « Idle » à l’état « Walk ».
  4. Implémentez une condition de transition basée sur le trigger « isWalk ».

Comment jouer une animation de déclenchement Unity

Ensuite pour lancer l’animation avec notre trigger, nous utilisons cette fois-ci la propriété « SetTrigger » qui activera notre trigger.

using UnityEngine;

public class AnimatorTest : MonoBehaviour
{
    public Animator animator;

    private int _isWalkHash;

    private void Awake()
    {
        _isWalkHash = Animator.StringToHash("isWalk");
    }

    public void Start()
    {
        animator.SetTrigger(_isWalkHash);
    }
}
    

Les paramètres trigger sont idéaux pour les animations telles que les séquences d’attaque, où vous souhaitez qu’une animation se joue une fois et s’arrête automatiquement.

Lorsqu’un déclenchement est défini, il est automatiquement désactivé lors du changement d’état de l’animateur.

Si vous devez réinitialiser un déclenchement pour une exécution simultanée, vous pouvez appeler la fonction « ResetTrigger ».

Cette méthode garantit que les animations ne sont pas interrompues pendant leur exécution.

Jouer une animation en appuyant sur une touche

Pour lancer une animation après l’appui d’une touche nous pouvons utiliser l’input Manager et sa méthode « Input.GetKey« :


using UnityEngine;

public class AnimatorTest : MonoBehaviour
{
    public Animator animator;

    private int idleHash;

    private void Awake()
    {
        idleHash = Animator.StringToHash("Idle");
    }

    public void Update()
    {
		if (Input.GetKey(KeyCode.A))
		{
			// Key A est maintenue
			animator.Play(idleHash);
		}
        
    }
}

Pour rappel il peut être préférable maintenant d’utiliser Input System le nouvel Input Manager à la place.

Jouer l’animation en sens inverse

Pour jouer l’animation en inversé nous pouvons modifier dans l’animator le paramètre « speed » de notre state et lui donner une valeur négative.

Unity play animation reverse

Si vous souhaitez plutôt directement dupliquer votre animation et la transformer en inverse, je vous conseille de faire un tour sur ce post.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *