【Unity】uGUIでAnimatorを使う:AnimationClipにイベントを追加する

uGUIでAnimatorを使う の投稿一覧

AddBehaviorボタンからアニメーションステートにイベントスクリプトを追加できます。
アニメーションの開始、途中、終了など、タイミングは自由に指定できます。

環境

  • OSX Yosemite v10.10.5
  • Unity v5.1.2f1

今回の流れ

  1. AnimationControllerを作成する
  2. AnimationClipを作成する
  3. Animatorコンポーネントをアタッチする
  4. AnimatorコンポーネントをアタッチしたGameObjectに、イベントスクリプトを追加する
  5. AnimationClipにAddEventする
  6. 実行する
前提

1,2,3については先日の投稿を参照してください。
前提知識と操作

アニメーションを再生したい対象のGameObjectにAnimatorコンポーネントが追加され、Controllerプロパティに指定されたAnimationControllerにAnimationClipが指定され、Entryからトランジションが伸びているステートが存在していることを確認してください。

AnimatorコンポーネントをアタッチしたGameObjectに、イベントスクリプトを追加する

発火させたいイベントスクリプトを作成し、GameObjectにコンポーネントとして追加してください。
発火するイベントはpublicなメソッドである必要があります。

AnimationClipにAddEventする

アニメーションを発火させたいタイミングを数値で指定するか、タイムテーブルの時間を表示している箇所をクリックして指定します。

今回は0:00の箇所を発火タイミングに指定します。
unity_animator_6_ss1

AddEventボタンを押します。
unity_animator_6_ss2

AddEventを押すと、イベントの発火タイミングがマークされます。
unity_animator_6_ss3

マークをクリックすると、マークが青くなり指定されたことを示すようになり、発火させるイベントスクリプトを指定できるダイアログが表示されます。
unity_animator_6_ss4

作成したイベントスクリプトがプルダウンメニューに含まれていない場合は、スクリプトの定義やコンポーネントのアタッチを確認してください。

実行する

ビルド、実行をするとアニメーションの開始時点で指定したスクリプトが発火するようになります。