アニメーション終了時に任意の関数を呼び出す方法
「Animation Event」の作成
手順①
- 「Assets」内の「Animation」ファイルをダブルクリックして中身を開く
手順②
- 「Animation」内の左上の「▶▶❙」を押して白線を右端に移動させる
手順③
- 「Animation」内の左上の「■+」を押して「Animation Event」を作成する
下画像の矢印の位置に白or青の小さな長方形が出現していればOK
呼び出したいメソッドの作成
手順④
- 「Assets」で「C#」スクリプトファイルを作成し、対象の「Animation」を含む「Animator」がアタッチされているゲームオブジェクトに、その「C#」スクリプトファイルをアタッチする
「アニメーション終了時に呼び出したいメソッドが記述されている『C#』スクリプトファイル」と「『Animation Event』を追加した『Animation』を含む『Animator』」は必ず同じゲームオブジェクトにアタッチしなければならない
手順⑤
- アニメーション終了時に呼び出したいメソッドを「手順④」で作成したスクリプトに記述する
記述するメソッドは「public」でなくてもいけるらしいが、「このメソッドは外部から呼び出されている」という事を明示的に示すためにも「public」にするべきだろう。
using UnityEngine;
public class AnimationController : MonoBehaviour
{
public void OnAnimationEnd()
{
//アニメーション終了時の処理
}
}
「Animation Event」の設定
手順⑥
- 「Assets」内の「Animation」ファイルをダブルクリックして中身を開いた後、「手順③」で作成した「Animation Event」をクリックし、「Inspector」ウィンドウに詳細を表示させる
手順⑦
- 「手順⑤」で作成したメソッドの名前を「Inspector」ウィンドウで「Function」に入力する
その他
補足
- 当記事では「Animation Event」をアニメーション終了判定用に用いているが、「Animation Event」自体はどのタイミングでも何度でも使用できる
参考記事
お問い合わせ
コメント