AnimationEvent はアニメーションの再生の一部として、SendMessage 関数のようなスクリプトの関数を呼び出すことができます。
アニメーションのイベントは 0 と 1 の引数を持つ関数をサポートしています。 パラメーターは float、int、string、object 参照、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
を取得します
(クリップはアニメーションウィンドウで設定されます)。クリップは 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 | このイベントに関連したアニメーションステート(読み取り専用) |
floatParameter | Float 型のパラメーターを持つイベントを保存し関数に送信します。 |
functionName | 関数の名前が呼び出されます。 |
intParameter | Int 型のパラメーターを持つイベントを保存し関数に送信します。 |
isFiredByAnimator | アニメーターコンポーネントでアニメーションイベントを発生させる場合、true を返します。 |
isFiredByLegacy | アニメーションコンポーネントでアニメーションイベントを発生させる場合、true を返します。 |
messageOptions | 関数読み出し時のオプション。 |
objectReferenceParameter | オブジェクト参照型のパラメーターを持つイベントを保存し関数に送信します。 |
stringParameter | String 型のパラメーターを持つイベントを保存し関数に送信します。 |
time | イベントを送信する時間 |
AnimationEvent | 新規アニメーションイベントを作成します。 |