特定のAnimatorステートが再生中の時のみ実行される処理を作りたいです。
そのために「特定のステートが再生中」という情報を取得したいです。
「Animator.GetCurrentAnimatorStateInfo」というコードを使えば、再生中のステートの名前やその再生時間が取得できる。ということはわかったのですが、具体的にどんな書式で書けば良いのかがわかりません。
わからないなりに、公式リファレンス
(https://docs.unity3d.com/ja/current/ScriptReference/Animator.GetCurrentAnimatorStateInfo.html)
にあったコードを真似して、以下のスクリプトを書きました。
if(Input.GetMouseButtonUp(0)) { Anim.SetTrigger("UnkoNage"); Anim.SetInteger("AnimIdx", (int)UnkomanAction.Idx.UnkoNage); } if(Anim.GetCurrentAnimatorStateInfo(0).IsName("UnkoNage")) { Debug.Log("あ"); }
ですが、"UnkoNage"ステートが再生中の時でもConsoleウィンドウにDebug.Logが表示されません。
「.IsName()」というコードは()内に書いたステートが再生中の時にtrueを返すもの。と認識しているのですが、この認識と上記のスクリプトでどこか間違っている個所はありますか?
回答1件
あなたの回答
tips
プレビュー