【问题标题】:Make mecanim transition after a delay in Unity3D (2D mode)在 Unity3D(2D 模式)中延迟后进行 mecanim 转换
【发布时间】:2015-07-21 17:18:24
【问题描述】:

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

例如:有时如果我的角色掉到地上,途中有一点东西会让我的角色上升一两帧,但我的onGround我的动画师的参数仍然检测到使我的角色动画飞行动画的变化。

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

有没有简单的方法可以做到这一点?或者我应该从脚本中操作它?如果有,怎么做?

【问题讨论】:

    标签: animation unity3d transition unity3d-2dtools


    【解决方案1】:

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

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

    ps:以防万一,如果您尝试创建一个跳转状态机,这在许多线程中进行了大量讨论,并且并不像看起来那么简单

    【讨论】:

    • 是的,我使用了布尔值,但你给了我一个好主意。不幸的是,我不能使用混合树,因为动画包含不同的剪辑(顺便说一句,这是一个 2D 动画)。但现在我按照您的建议使用浮点变量。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 2016-05-19
      • 2020-12-22
      • 2015-04-18
      • 1970-01-01
      相关资源
      最近更新 更多