在 Unity Animator 中使用 "Any State" 的问题

issue using "Any State" in Unity Animator

所以,我正在制作一个 2D 小游戏,在这个游戏中,玩家可以滑雪,所以,我制作了玩家动画师,我希望玩家可以滑雪,而不管状态如何,所以我使用了"Any State" 状态使用名为 "isSnowboarding" 的 bool 将当前动画转换为“9_Snowboarding”动画,效果很好。

当我想让玩家跳跃时,问题就开始了,我创建了跳跃动画,并创建了一个名为 "isJumping" 的 bool 来使转换发生,我通过代码将 bool 设置为 true。

动画控制器没有转换到动画并播放它,而是多次将“9_Snowboarding”转换为“10_SnowboardJumping”,我不知道如何解决这个问题。

特别是在您的情况下,您需要使用 "trigger" 而不是 "bool" 参数。

bool 的问题在于 isJumping 始终设置为 true,因此您的条件不断匹配并且您不断过渡到相同的动画。

另一方面,

"Triggers" 将在使用后禁用。因此,请尝试添加类似 Jump 触发器的内容并在您的代码中进行设置

或者,如果出于某种原因你绝对需要一个布尔值,你可以在 Any State to your State Die 的 Transition 设置中禁用选项 "Can Transition To Self"。