Unity 6.3
0 онлайн 66 гостей 3 в системе
Вход

AnimatorStateInfo

структура в UnityEngine

Выполнено в:UnityEngine.AnimationModule

Описание

Сведения о текущем или следующем состоянии анимации, которым управляет Animator.

С помощью этой структуры получают сведения о текущем состоянии анимации и его переходах: имя, длительность, скорость и признак зацикливания.

Вы также можете использовать AnimatorStateInfo для управления временем анимации и обработки смешивания, изменений состояния и времени событий.

Дополнительные ресурсы: Animator, AnimatorController, Animator.StringToHash.

В следующем примере показано, как использовать AnimatorStateInfo для управления переходами и настройки воспроизведения в реальном времени.

// This script demonstrate using AnimatorStateInfo to modify a parameter during animation.
// Ensure Animator has a "Run" state in Base Layer and a "SpeedMultiplier" parameter.

using UnityEngine;

[RequireComponent(typeof(Animator))]
public class AnimatorStateInfoExample : MonoBehaviour
{
    private Animator m_Animator;
    private readonly int m_RunStateHash = Animator.StringToHash("Base Layer.Run");

    void Start()
    {
        m_Animator = GetComponent<Animator>();
    }

    void Update()
    {
        // Retrieve the current animation state information
        AnimatorStateInfo stateInfo = m_Animator.GetCurrentAnimatorStateInfo(0);

        // Use the hashed name for comparison with the current state's full path hash
        if (stateInfo.fullPathHash == m_RunStateHash)
        {
            Debug.Log("Running state active. Normalized time: " + stateInfo.normalizedTime);

            // Perform actions based on the animation's progress
            if (stateInfo.normalizedTime > 0.5f && stateInfo.normalizedTime < 0.75f)
            {
                Debug.Log("Halfway through the Run animation.");
                m_Animator.SetFloat("SpeedMultiplier", 1.5f); // Adjust the playback speed
            }
        }
    }
}

Свойства

Свойство Описание
fullPathHashПолный хеш пути для этого состояния.
lengthТекущее время состояния.
loopЯвляется ли это состояние зацикленным.
normalizedTimeНормализованное время состояния.
shortNameHashХеш генерируется с помощью Animator.StringToHash. Хеш не включает в себя имя родительского слоя.
speedСкорость воспроизведения анимации. 1 — обычная скорость воспроизведения.
speedMultiplierМножитель скорости для этого состояния.
tagHashЗнак состояния.

Открытые методы

Метод Описание
IsNameПроверяет, совпадает ли name с именем активного состояния в машине состояний.
IsTagПроверяет, есть ли у состояния анимации указанный тег.