103.2707
108.5588
12.12.2024
03:08:17

Как получить текущую выполняемую анимацию в аниматоре Unity

Для получения текущей выполняемой анимации в аниматоре Unity, вы можете использовать код на C# и API Animator. Вот пример того, как это можно сделать:


using UnityEngine;

public class GetCurrentAnimation : MonoBehaviour
{
  private Animator animator;

  private void Start()
  {
    // Получите компонент Animator объекта
    animator = GetComponent();
  }

  private void Update()
  {
    // Получите имя текущей выполняемой анимации
    string currentAnimation = GetCurrentAnimatorClipName(animator);

    // Выведите имя текущей анимации в консоль
    Debug.Log("Текущая анимация: " + currentAnimation);
  }

  // Метод для получения имени текущей анимации
  private string GetCurrentAnimatorClipName(Animator animator)
  {
    if (animator != null)
    {
      AnimatorClipInfo[] clipInfo = animator.GetCurrentAnimatorClipInfo(0);
      if (clipInfo.Length > 0)
      {
        return clipInfo[0].clip.name;
      }
    }
    return null;
  }
}

В этом примере мы используем компонент Animator , чтобы получить доступ к текущей анимации. Метод GetCurrentAnimatorClipInfo(0) возвращает информацию о текущей анимации для первого слоя (если у вас есть несколько слоев анимации, вы можете изменить аргумент на номер нужного слоя).

Затем мы получаем имя текущей анимации из информации о клипе и выводим его в консоль. Это имя будет соответствовать имени анимационного клипа, который в данный момент воспроизводится в аниматоре объекта.

Примечание: Этот код предполагает, что анимации в аниматоре имеют уникальные имена клипов. Если у вас есть анимации с одинаковыми именами, этот код может вернуть только первую найденную анимацию.

28.09.2023 01:48

Лента статей

Наверх