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 | Знак состояния. |