C# 使用“发布”;“任何国家”;统一动画师

C# 使用“发布”;“任何国家”;统一动画师,c#,unity3d,animation,animator,C#,Unity3d,Animation,Animator,所以,我制作了一个2D小游戏,在这个游戏中,玩家可以滑雪板,所以,我制作了玩家动画,我想让玩家滑雪板不受状态的影响,所以我使用“任何状态”状态,使用名为“isSnowboarding”的bool将当前动画转换为“9_Snowboarding”动画,效果很好 当我想让玩家跳跃时,问题就开始了,我创建了跳跃动画,我创建了一个bool来进行转换,名为“isJumping”,我通过代码将bool设置为true animator控制器没有转换到动画并播放它,而是多次将“9_滑雪板”转换为“10_滑雪板

所以,我制作了一个2D小游戏,在这个游戏中,玩家可以滑雪板,所以,我制作了玩家动画,我想让玩家滑雪板不受状态的影响,所以我使用“任何状态”状态,使用名为“isSnowboarding”的bool将当前动画转换为“9_Snowboarding”动画,效果很好

当我想让玩家跳跃时,问题就开始了,我创建了跳跃动画,我创建了一个bool来进行转换,名为“isJumping”,我通过代码将bool设置为true

animator控制器没有转换到动画并播放它,而是多次将“9_滑雪板”转换为“10_滑雪板跳跃”,我不知道如何解决这个问题


尤其是在您的情况下,您需要使用“触发器”而不是“bool”参数

bool的问题是,
isJumping
始终设置为true,因此您的条件将继续匹配,并且您将继续转换到相同的动画


另一方面,“触发器”一旦使用将禁用。所以,试着添加一些类似于跳转的东西,并在代码中设置它。或者,若出于某种原因您确实需要一个bool,您可以在任何状态到您的状态的转换设置中禁用“CanTransitiontoSelf”选项


噢,哇,实际上这也是我的问题!Unity不会像通常在切换状态时那样设置转换循环的动画,这可能是我猜想的任何状态的特殊性。如果我这样做,指定给目标状态的动画将不再循环。这个标志必须为真才能有状态动画循环吗?@Wolfram我想是的,因为当它循环时,它会返回到相同的状态,在这种情况下它不能。很好,这是一个完美的答案