Как получить текущую выполняемую анимацию в аниматоре 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) возвращает информацию о текущей анимации для первого слоя (если у вас есть несколько слоев анимации, вы можете изменить аргумент на номер нужного слоя).
Затем мы получаем имя текущей анимации из информации о клипе и выводим его в консоль. Это имя будет соответствовать имени анимационного клипа, который в данный момент воспроизводится в аниматоре объекта.
Примечание: Этот код предполагает, что анимации в аниматоре имеют уникальные имена клипов. Если у вас есть анимации с одинаковыми именами, этот код может вернуть только первую найденную анимацию.