質問: this.gameObject.GetComponent(); animeData.SetTrigger ("New Trigger"); } } ``` こうすれば、キーを押すと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ステートのアニメーションは、以下のような設定になっています。 Jumpステートのインスペクター ![Jumpステートのインスペクター](https://teratail.storage.googleapis.com/uploads/contributed_images/e9c1284ef15d0501f709fef313302c70.png) Jumpのアニメーションクリップのインスペクター ![Jumpのアニメーションクリップのインスペクター](https://teratail.storage.googleapis.com/uploads/contributed_images/3ff6aa8d76a4c5629de46cea60ab0d19.png) JumpのAnimationビュー ![JumpのAnimationビュー](https://teratail.storage.googleapis.com/uploads/contributed_images/18ae98a124db9da072e98365da65a55e.png) ### 追記2。 よく見たら警告メッセージが出ていました。 ![警告文](https://teratail.storage.googleapis.com/uploads/contributed_images/cfd6b3cd525be6884895c8a94856804f.png)
回答: Unity マニュアル:アニメーション遷移を見るに、Conditionsに何も指定しない場合、HasExitTimeがfalseであると遷移が行われないようです。 1. 指定されたタイミング(=Exit Time)に来た時、その時遷移条件(=Conditions)を満たしていたら、ステート遷移する。 →遷移条件を満たしていても指定されたタイミングになるまで遷移は行われない。 2. 遷移条件が無い(=Conditionsに何も指定しない)場合、指定されたタイミング(=Exit Time)に来たら、ステート遷移する。 →HasExitTimeを指定しない場合、いつまで経っても遷移しない。