Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

AnimationEvent

класс в UnityEngine / Реализовано в: UnityEngine.AnimationModule

Описание

AnimationEvent позволяет вызывать функцию скрипта, аналогичную SendMessage, как часть воспроизведения анимации.

Анимационные события поддерживают функции, которые принимают ноль или один параметр. Параметр может быть числом с плавающей запятой, целым числом, строкой, ссылкой на объект или AnimationEvent.

// Пример AnimationEvent // Небольшой пример, который можно вызывать для каждого указанного кадра. // Код выполняется один раз за цикл анимации.

using UnityEngine; using System.Collections;

public class Example : MonoBehaviour { public void PrintEvent() { Debug.Log("PrintEvent"); } }

Приведенный ниже более подробный пример демонстрирует более сложный способ создания анимации. В этом примере скрипта осуществляется доступ к компоненту Animator и из него получается Clip. (Этот клип был настроен в окне анимации.) Клип длится 2 секунды. Создается событие AnimationEvent с заданными параметрами. Параметры включают функцию PrintEvent(), которая будет обрабатывать событие. Затем событие добавляется в клип. Все это происходит в Start(). После запуска игры событие вызывается через 1,3 секунды, а затем повторяется каждые 2 секунды.

// Add an AnimationEvent to a GameObject that has an Animator using UnityEngine; using System.Collections;

public class Example : MonoBehaviour { public void Start() { // существующие компоненты на GameObjectAnimationClip clip; Animator anim;

// создано новое событие AnimationEvent evt; evt = new AnimationEvent();

// помещаем некоторые параметры в AnimationEvent // - вызвать функцию PrintEvent() // - анимация на этом объекте длится 2 секунды // и созданная здесь новая анимация // настроено так, чтобы анимация происходила через 1,3 секунды evt.intParameter = 12345; evt.time = 1.3f; evt.functionName = "PrintEvent";

// get the animation clip and add the AnimationEvent anim = GetComponent<Animator>(); clip = anim.runtimeAnimatorController.animationClips[0]; clip.AddEvent(evt); }

// функция, которая будет вызываться как событие public void PrintEvent(int i) { print("PrintEvent: " + i + " called at: " + Time.time); } }

Свойства

animationState Состояние анимации, вызвавшее это событие (только для чтения).
animatorClipInfo Информация о клипе аниматора, относящаяся к этому событию (только для чтения).
animatorStateInfo Информация о состоянии аниматора, относящаяся к этому событию (только для чтения).
floatParameter Плавающий параметр, который хранится в событии и будет отправлен в функцию.
functionName Имя функции, которая будет вызываться.
intParameter Параметр Int, который хранится в событии и будет отправлен в функцию.
isFiredByAnimator Возвращает true, если это событие Animation было запущено компонентом Animator.
isFiredByLegacy Возвращает true, если это событие анимации было запущено компонентом анимации.
messageOptions Варианты вызова функции.
objectReferenceParameter Параметр ссылки на объект, который хранится в событии и будет отправлен в функцию.
stringParameter Строковый параметр, который хранится в событии и будет отправлен в функцию.
time Время, когда событие будет запущено.

Конструкторы

AnimationEvent Создает новое событие анимации.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3