AnimationEvent
класс в UnityEngine
Выполнено в:UnityEngine.AnimationModule
Описание
AnimationEvent позволяет вызывать функцию скрипта, аналогичную SendMessage, как часть воспроизведения анимации.
События Animation поддерживают функции, которые принимают один или нулевой параметр. Параметр может быть float, int, string, ссылка на объект или AnimationEvent.
// Animation Event example // Small example that can be called on each specified frame. // The code is executed once per animation loop.
using UnityEngine; using System.Collections;
public class Example : MonoBehaviour { public void PrintEvent() { Debug.Log("PrintEvent"); } }
Более подробный пример ниже показывает более сложный способ создания анимации. В этом примере скрипта компонент Animator доступен и из него получается Clip. (Этот клип был настроен в окне Animation.) Клип длится 2 секунды. Создан AnimationEvent, и у него заданы параметры. Параметры включают функцию PrintEvent(), которая будет обрабатывать событие. Событие добавляется в клип. Все это происходит в Start(). После запуска игры событие вызывается через 1.3с и затем повторяется каждые 2с.
// Add an Animation Event to a GameObject that has an Animator using UnityEngine; using System.Collections;
public class Example : MonoBehaviour { public void Start() { // existing components on the GameObject AnimationClip clip; Animator anim;
// new event created AnimationEvent evt; evt = new AnimationEvent();
// put some parameters on the AnimationEvent // - call the function called PrintEvent() // - the animation on this object lasts 2 seconds // and the new animation created here is // set up to happen 1.3s into the animation 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); }
// the function to be called as an event public void PrintEvent(int i) { print("PrintEvent: " + i + " called at: " + Time.time); } }
Свойства
| Свойство | Описание |
|---|---|
| animationState | Состояние анимации, вызвавшее это событие (только для чтения). |
| animatorClipInfo | Информация о клипе аниматора, связанная с этим событием (только для чтения). |
| animatorStateInfo | Сведения о состоянии Animator, относящиеся к этому событию (только для чтения). |
| floatParameter | Параметр с плавающей запятой, который хранится в событии и будет передан функции. |
| functionName | Имя функции, которая будет вызвана. |
| intParameter | Параметр Int, который хранится в событии и будет передан функции. |
| isFiredByAnimator | Возвращает true, если событие Animation было вызванно компонентом Animator. |
| isFiredByLegacy | Возвращает true, если событие Animation было вызванно компонентом Animation. |
| messageOptions | Параметры вызова функций. |
| objectReferenceParameter | Параметр ссылки на объект, который хранится в событии и будет передан функции. |
| stringParameter | Строковый параметр, который хранится в событии и будет передан функции. |
| time | Время, когда событие будет запущено. |
Конструкторы
| Конструктор | Описание |
|---|---|
| AnimationEvent | Создает новое событие анимации. |