前提・実現したいこと
Unityで現在再生されているアニメーションの再生時間を取得したい。
歩くアニメーションから攻撃アニメーションに遷移するときに攻撃アニメーションの再生時間を取得したい。
歩くアニメーションから攻撃アニメーションに遷移する方法は、
アニメーターのBoolパラメーターにisAttackという変数名をつけ、使用して遷移しています。
該当のソースコード
// 自身のアニメーターコンポーネントを取得 Animator animator = animator = GetComponent<Animator>(); // 歩くアニメーション→攻撃アニメーションに遷移 animator.SetBool("isAttack", true); // 現在の実行中のステータスを取得 AnimatorStateInfo currentState = animator.GetCurrentAnimatorStateInfo(0); // ステータス名確認 if(currentState.IsName("Attack")) { Debug.Log("Attack"); } else if(currentState.IsName("Walk")) { Debug.Log("Walk"); } // 攻撃アニメーション終了→歩くアニメーションに自動遷移 animator.SetBool("isAttack", false);
試したこと
上記のソースコードで試したところ、攻撃アニメーションではなく、歩くアニメーションがとれてしまうのですが、
コルーチンで少し時間を空けないと攻撃アニメーションのステータスは取得できないのでしょうか?
補足情報(FW/ツールのバージョンなど)
歩くアニメーションから攻撃アニメーションに遷移する時はHasExitTimeのチェックは、はずしてあります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/13 04:46