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

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Создает новое событие анимации.