在Unity3D延迟后进行mecanim转换(2D模式)

时间:2015-07-21 17:18:24

标签: animation unity3d transition unity3d-2dtools

我正在使用Unity的Animator为我的角色制作动画,我希望动画只有在足够长的时间才能启动。

例如:有时如果我的角色在地面上,并且在路上有一些东西让我的角色提升一两帧,但我的 onGround 我的动画师的参数仍然检测到变化,让我的角色动画飞行动画。

所以在这种情况下,我希望我的动画只能在0.1秒的短暂延迟后启动,并且只有当 onGround 参数仍为假时,才能避免这些小故障。

这样做有简单的方法吗?或者我应该从脚本中操纵它?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:1)

你如何过渡到飞行状态,一个布尔值?如果是这样,您可以尝试浮动范围并在范围的某个点之后混合动画,例如0.5F。

我现在无法打开统一,但我认为即使可以使用blend trees配置也是一种更好的方法来实现可靠的脚本控制。

ps:以防万一,如果你试图创建一个跳转状态机,这在很多线程中讨论很多,并且不像看起来那么简单

答案 1 :(得分:0)

作为解决方案,我使用名为 offGroundTime 的浮点变量。我在每个tick中设置值,如果我的onGround变量为false,则使用Time.deltaTime增加它,如果它是真的则将其设置为0。如果offGroundTime大于0.2,我打开飞行动画,如果它低,我打开空闲动画。