はじめに
今回はアニメーションにおけるEventの処理についてやります。
この記事は以下の記事の続きですので、読んでいない方はこちらもお願いします。
kiironomidori.hatenablog.com
Animation Eventについて
ざっくりいうと、アニメーションの処理中にスクリプトから関数を呼び出す処理です。
例えば「画像1⇒2⇒3⇒1…」とループするアニメーションにおいて「画像2」に切り替わった瞬間に関数を呼び出すといったことが可能になります。
詳しい説明は公式ドキュメントを参考にしてください。
docs.unity3d.com
詳細説明
1. スクリプトの設定
まず、「Create」⇒「C# Script」よりスクリプトを作成しファイル名を「EventTest」とします。
そしたら、このファイルに次のプログラムを記述しまて前回用意したゲームオブジェクトの「export_0」にこれをアタッチします。
using UnityEngine; public class EventTest : MonoBehaviour { void Func1() { Debug.Log("Func1"); } void Func2(int a) { Debug.Log(a); } void Func3(string s) { Debug.Log(s); } void Func4(System.DayOfWeek dayOfWeek) { Debug.Log(dayOfWeek); } }
2. Animation Eventの設定(引数なしの関数の設定)
前回用意した「SpriteClip」をダブルクリックしてAnimationウィンドウを開き、更に「export_0」を選択します。
画像に示したタイムラインの位置をクリックしたら更に「Add KeyEvent」をクリックしてイベントを追加します。
インスペクターから追加したAnimation EventのFunctionの設定を行えるので、「Func1()」と設定
2. Animation Eventの設定(引数ありの関数の設定)
前項と同様に画像に示したタイムラインの位置をクリックしたら更に「Add KeyEvent」をクリックしてイベントを追加します。
インスペクターから追加したAnimation EventのFunctionの設定を行えるので、「Func2(int)」と設定。
Prametersにintを設定する項目があるので数値を設定する。これがFunc2の引数となる。
同様にFunc3とFunc4も設定する。
3. 実行
実際にゲームを動かすことでAnimation Eventの挙動を確認する。
すると、下の画像用に画像が切り替わるごとに関数が呼び出されていることが確認できる。