在 Unity Animator 中使用“任何状态”的问题
Posted
技术标签:
【中文标题】在 Unity Animator 中使用“任何状态”的问题【英文标题】:issue using "Any State" in Unity Animator 【发布时间】:2018-08-28 21:37:00 【问题描述】:所以,我正在制作一个小 2D 游戏,在这个游戏中玩家可以滑雪,所以,我制作了玩家动画师,我希望玩家滑雪与状态无关,所以我使用了“任何State”状态,使用名为“isSnowboarding”的布尔值将当前动画转换为“9_Snowboarding”动画,效果很好。
当我希望玩家跳跃时,问题就开始了,我创建了跳跃动画,并创建了一个名为“isJumping”的 bool 来实现转换,并通过代码将 bool 设置为 true。
动画控制器不停地转换“9_Snowboard”到“10_SnowboardJumping”,而不是转换到动画并播放它,我不知道如何解决这个问题。
【问题讨论】:
【参考方案1】:或者,如果您出于某种原因绝对需要一个布尔值,您可以在 Any State to your State Die 的转换设置中禁用“可以转换为自我”选项。
【讨论】:
如果我这样做,分配给目标状态的动画将不再循环。这个标志是否必须为真才能有状态动画循环? @Wolfram 我认为是的,因为当它循环时它会回到相同的状态,在这种情况下它不能。【参考方案2】:特别是在您的情况下,您需要使用“触发器”而不是“布尔”参数。
bool 的问题在于 isJumping
始终设置为 true,因此您的条件会继续匹配,并且您会继续转换到相同的动画。
另一方面,“触发器”一旦使用就会禁用。所以尝试添加类似Jump
触发器的东西并在你的代码中设置它
【讨论】:
哇哦,其实也是我的问题! Unity 不会像切换状态时通常那样为转换循环设置动画,我猜这可能是 Any State 的特殊性。以上是关于在 Unity Animator 中使用“任何状态”的问题的主要内容,如果未能解决你的问题,请参考以下文章