在 Unity3D(2D 模式)中延迟后进行 mecanim 过渡

Make mecanim transition after a delay in Unity3D (2D mode)

我正在使用 Unity 的 Animator 为我的角色设置动画,我希望动画仅在持续时间足够长时才开始。

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

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

有什么简单的方法吗?还是我应该从脚本中操作它?如果是,怎么做?

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

我现在无法打开 unity,但我认为即使可以只使用 blend trees 配置也是获得可靠脚本控制的更好方法。

ps:以防万一,如果你正在尝试制作一个跳转状态机,这在许多线程中都有很大的讨论,并不像看起来那么微不足道

作为解决方案,我使用了一个名为 offGroundTime 的浮点变量。我在每个刻度中设置值,如果我的 onGround 变量为假,则用 Time.deltaTime 增加它,如果为真,则将其设置为 0。如果offGroundTime大于0.2,则开启飞行动画,如果小于0.2,则开启闲置动画。