【Unity】アニメーション終了時に任意のメソッドを実行させる方法

Unity

はじめに

この記事では Animation Event を使ってアニメーション終了時に任意のメソッドを実行させる方法をザックリと解説します。

この記事では Animation Event をアニメーションの終了判定に使っていますが、Animation Event 自体はどのタイミングでも何度でも使用できるので例えばキャラクターの脚の動きに応じて足音を鳴らすとかにも使えます。

手順

Animation Event の作成

手順1

では早速手順を解説します。
まずは Animation Event を作成します。

Assets フォルダ以下にある Animation をダブルクリックして中を開きます。

手順2

左上辺りにある「▶▶❙」というマークのボタンを押して白線を右端に移動させます。

手順3

先ほど押したボタンの近くにある「■+」のようなマークのボタンを押して Animation Event を作成します。
この画像のように矢印の位置(アニメーション終了時の位置)に白色 or 青色の小さな長方形が出現していれば OK です。

メソッドの作成

手順4

アニメーション終了時に呼び出したいメソッドを作成します。

Assets フォルダ以下でスクリプトを作成します。
先ほど編集した Animation がアサインされている Animator がアタッチされているゲームオブジェクトにそのスクリプトをアタッチします。

手順5

アニメーション終了時に実行させたいメソッドを先ほど作成したスクリプトに定義します。
(メソッドのアクセス修飾子は public 以外でもいいのですが、外部から呼び出されるメソッドであることを明示したいので自分はいつも public にしています)

using UnityEngine;

public class AnimationController : MonoBehaviour
{
    public void OnAnimationEnd()
    {
        //アニメーション終了時の処理
    }
}

メソッドの登録

手順6

Animation Event を追加した Animation ファイルを再び開きます。
「手順3」で作成した Animation Event を選択してインスペクターにその詳細を表示させます。

手順7

インスペクターにて、「手順5」で作成したメソッドの名前を Function に入力します。

これでメソッドの登録は完了しました。
この状態でゲームを実行してアニメーションを再生するとアニメーション終了時にメソッドが呼び出されるはずです。

最後に

参考記事

お問い合わせ

    タイトルとURLをコピーしました