渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

(追記)UnityのAnimationEventに渡せる引数について


f:id:esakun:20150730215258g:plain

環境

  • Unity5.5.0p1

www.shibuya24.info

AnimationEventで渡せる引数について1年前に記事を書いたのですが、不足情報があったので追記記事を書きます。

  • float型
  • int型
  • string型
  • bool型
  • Enum型
  • 引数なしの関数ももちろん可能

このように私のブログでは送信引数の型を紹介していましたが2点ほど抜けていました。

リファレンスをよく読んでみると...

docs.unity3d.com

AnimationEvent はアニメーションの再生の一部として、SendMessage 関数のようなスクリプトの関数を呼び出すことができます。

アニメーションのイベントは 0 と 1 の引数を持つ関数をサポートしています。 パラメーターは float、int、string、object 参照、AnimationEvent を送信することができます。

  • object参照
  • AnimationEvent

この2つもAnimationEvent時に送信できます。

※Unity5.4のリファレンスですが、Unity4.6時点で同様の内容が記述されていることを確認済みです

object参照AnimationEvent型に対応したサンプルコードです。

gist.github.com

インスペクタUI 備考
object参照 f:id:esakun:20161219002301p:plain ここで言うobject参照とはUnityEngine.Object型のこと
AnimationEvent型 f:id:esakun:20161219002321p:plain float型, int型, string型, UnityEngine.Object型のパラメータをそれぞれ1つずつ渡すことが出来ます ※AnimationEvent型はsealedクラスなのでサブクラスは作れません

まとめ

AnimationEvent型を使用するイメージは沸かないので割愛しますが、object参照を使用することはあるかもしれません。

Projectブラウザ内のUnityEngine.Objectクラスを継承したオブジェクトを予めアタッチすることが出来るので、カスタムクラスインスタンスを渡す場合はScriptableObjectをAnimationClipに保持させておくことが出来ます。

以前からAnimationEventでカスタムクラスを渡したかったので、実装可能だということが分かり非常に嬉しいのですが、なんとも悔しいリファレンスの見落としです;;

あわせてどうぞ

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info