ジャンプに合わせて効果音をならしたり、足元に煙を出したい! 私はしたい。
そんなときに役立つのがアニメーションイベントです。
- アニメーションイベントとは
アニメーションの途中のある地点で、スクリプトに設定した関数を呼び出せる機能です。 この動きのタイミングちょうどで処理したい! という場合にめっさ便利です。
モデルにスクリプトをアタッチしておく
下準備として、以下のようなスクリプトをモデルにつけておきます。
using UnityEngine; using System.Collections; public class Player : MonoBehaviour { void Start () { } void Update () { } void OnPlayerLand () { // 着地した! } }
OnPlayerLandが今回呼び出す関数です。private 関数で問題ないです。
アニメーションを設定してAnimationウインドウを開く
こちらの記事を参考にしてくだされ。 また、アニメーションのリストの名前にRead Onlyとついていて編集できない場合、こちらの記事を参考にしてくだされ。
設定したいアニメーションの位置を探す
モデルを選択した状態でAnimationウインドウを見ると、モデルに設定してあるアニメーションがリストから選択できます。
もう一度を押すと途中で停止します。
で1フレームずつ動かして、イベントを発生させたい位置を探しましょう。
こんな感じでマークがつきます。 このマークをクリックすると
こういうウインドウが出るので、リストから、最初に作成したスクリプトのOnPlayerLandを選択します。 これでイベントの準備は完了です。
動かしてみる
OnPlayerLandの中身を実装したら、Editorで実行してみましょう。
着地に合わせてまっくろくろすけみたいなのが出てきましたね。まあパーティクルなんですけど。 使えばこんな感じでアニメーションと処理の同期を取れます。