こんにちは、エンジニアのオオバです。
UnityのAnimationEventに渡せる引数について
AnimationEventで渡せる引数
について1年前に記事を書いたのですが、不足情報があったので追記記事を書きます。
- float型
- int型
- string型
- bool型
- Enum型
- 引数なしの関数ももちろん可能
このようにオオバのブログでは送信引数の型を紹介していましたが2点ほど抜けていました。
リファレンスをよく読んでみると
UnityEngine.AnimationEvent - Unity スクリプトリファレンス
AnimationEvent はアニメーションの再生の一部として、SendMessage 関数のようなスクリプトの関数を呼び出すことができます。
アニメーションのイベントは 0 と 1 の引数を持つ関数をサポートしています。 パラメーターは float、int、string、object 参照、AnimationEvent を送信することができます。
- object参照
- AnimationEvent
この2つもAnimationEvent時に送信できます。
※Unity5.4のリファレンスですが、Unity4.6時点で同様の内容が記述されていることを確認済みです
object参照
、AnimationEvent型
に対応したサンプルコードです。
AnimationEventでobject参照とAnimationEvent型を送るテスト · GitHub
型 | インスペクタUI | 備考 |
---|---|---|
object参照 | ここで言うobject参照 とはUnityEngine.Object型のこと | |
AnimationEvent型 | float型, int型, string型, UnityEngine.Object型のパラメータをそれぞれ1つずつ渡すことが出来ます ※AnimationEvent型はsealedクラスなのでサブクラスは作れません |
まとめ
AnimationEvent型
を使用するイメージは沸かないので割愛しますが、object参照
を使用することはあるかもしれません。
プロジェクトウィンドウ内のUnityEngine.Objectクラスを継承したオブジェクト
を予めアタッチすることが出来るので、カスタムクラスインスタンスを渡す場合はScriptableObjectをAnimationClipに保持させておくことが出来ます。
以前からAnimationEventでカスタムクラスを渡したかったので、実装可能だということが分かり非常に嬉しいのですが、なんとも悔しいリファレンスの見落としです;;
この記事が気に入ったらフォローしよう
- Unity5.5.0p1