###前提・実現したいこと
HasExitTimeをfalseにすると、ステートが遷移しなくなる現象が起きて、
その原因が分かりません。
まず、HasExitTimeとは、
trueにするとモーションが終わるまで他のステートに遷移しなくなる。 falseにすると、モーションの途中でも他のステートに遷移する。
と理解しているのですが、これが間違っているのでしょうか?
###試したこと
デフォルトのステートから、キーを押したら、Jumpアニメーションを行い、
終わったら、自動でデフォルトのステートに戻ることを意図したAnimatorを作成しました。
アニメーションパラメータに「New Trigger」というトリガーのパラメータを設け、
New Animation → Jump の遷移条件には、ConditionsでNew Triggerを指定。 Jump → New Animation の遷移条件には、Conditionsに何も指定しない。
また、キーを押した時のコードは下記のようになっています。
C#
1 void Update () { 2 if (Input.GetButtonDown ("Jump")) { 3 Animator animeData = this.gameObject.GetComponent<Animator>(); 4 animeData.SetTrigger ("New Trigger"); 5 } 6 }
こうすれば、キーを押すとJumpアニメーションを再生して、それが終わったら、
デフォルトのステートに戻るつもりだったのですが、
実際は、
[JumpからNew Animationの遷移]のHasExitTimeをtrue → 意図した通り、Jumpアニメーションが終わるとデフォルトのステートに戻る。 [JumpからNew Animationの遷移]のHasExitTimeをfalse → Jumpアニメーションが終わっても遷移しない。Jumpステートで停止。
となります。
HasExitTimeをfalseにすると、なぜ、Jumpステートで停止するのかがわかりません。
Jump → New Animation の遷移条件には、Conditionsに何も指定していないので、
HasExitTimeのtrue, falseに関係なく、Jumpステートが終わったら、
デフォルトのステートに戻るはずだと思っているのですが、何故でしょうか?
ご教授のほどお願いします。
###追記。
Jumpステートのアニメーションは、以下のような設定になっています。
###追記②。
よく見たら警告メッセージが出ていました。
回答1件
あなたの回答
tips
プレビュー