【Unity】現在再生をされているアニメーション情報を取得する方法

  • |
【Unity】現在再生をされているアニメーション情報を取得する方法
   

今回も「Unityではじめる2Dゲーム作り徹底ガイド」から勉強したことで、これは便利だと思っていることを紹介します。(P230ぐらいまで)
今回は、現在再生をされているアニメーションをスクリプトで取得する方法です。

Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦
大野 功二

SBクリエイティブ
売り上げランキング : 5252

Amazonで詳しく見る


UnityのAnimatorで設定できるのは、パラパラ漫画のようなスプライトの遷移だけではありません。
positionやcolliderの範囲などコンポーネントのパラメーターも設定できます。

GetCurrentAnimatorStateInfo

GetCurrentAnimatorStateInfoを利用して、アニメーションのState情報を取り出します。
//引数0はLayerのdefault。
//上から順番の0,1,2,3.....のように割り当てられます。
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);


これで、現在実行されているアニメーションの情報を取り出すことができます。

アニメーションの情報

取り出せる情報は色々あります。
  • nameHash : Stateの名前
  • tagHash : タグ名
  • length : stateの長さ(秒)

//使用例1
if(stateInfo.nameHash ==  Animator.StringToHash("Base Layer.Run"){


}

//使用例2(ただし処理速度が遅い)
bool hoge = stateInfo.IsName("Base Layer.Attack");


[Base Layer][Animator]のレイアーを指定します。
2015-3-3-ffdsa

Related Posts Plugin for WordPress, Blogger...