べにやまぶろぐ

技術寄りの話を書くつもり

Unity の Mechanim で今どの状態なのかを確認する

バージョン : Unity 4.3.4f1

Mechanim でアニメーション制御するとき、スクリプト側から今何の状態なのか知りたいときがある(走っているときは移動距離を倍にしたいなど)。

そんなときは

var animator: Animator = GetComponent("Animator"); animator.GetCurrentAnimatorStateInfo(0).IsName("Base Layer.idle");

とかで良さげ。この場合、アニメーションレイヤー名が "Base Layer" でアニメーション名が "idle" なので "Base Layer.idle"。レイヤー名は Animator ウィンドウで確認できる。

f:id:beniyama:20140224110603p:plain

あとはハッシュ値でぶつける感じみたい。

http://answers.unity3d.com/questions/351534/how-to-get-current-state-on-mecanim.html