コンテンツへスキップ

【Unity】アニメーションからスクリプトのメソッドを実行する方法

Unity のアニメーションはとても便利な機能ですよね。今回は、アニメーションからスクリプトのメソッドを呼び出す方法をご紹介します。下記の動画は、オープニングの画面です。プレイヤーが左から右に走ってジャンプする、というもの。

このプレイヤーの動きは Unity のアニメーションで作成しています。着地をしたら、「Push」のボタンを表示させています。ジャンプのアニメーションが終わったときに、ボタンを表示させるメソッドを呼び出しているのです。それではどのように作るか見ていきましょう。

STEP1:アニメーションにイベントを追加する

下記は、アニメーション「OpeningJump」の着地のタイミングで、イベント「onAnimationEnd」を登録する例です。アニメーションの2秒付近に、青色のマークがついていると思います。これでスクリプトのメソッドを呼ぶ準備ができました。

unity-animation-call-method1

STEP2:スクリプトを作成する

STEP1で登録したイベントと同じ名前のメソッド(onAnimationEnd)を定義します。シーンが呼び出されたらボタンを非表示にし、onAnimationEnd メソッドが実行されるとボタンを表示させるプログラムです。

public class ButtonController : MonoBehaviour
{
    [SerializeField] private GameObject myGameObject;

    // Start is called before the first frame update
    private void Start()
    {
        myGameObject.SetActive(false);
    }

    public void onAnimationEnd()
    {
        myGameObject.SetActive(true);
    }
}

STEP3:アニメーションとスクリプトを紐付ける

ここでは、Player にアニメーションとスクリプトをアタッチしました。これで、アニメーションに登録したイベントが、設定したタイミングでスクリプトを呼び出します。

unity-animation-call-method2

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA