GetAxis 上的值没有跳跃以获得更流畅的动画 UNITY3D

No jumping of values on GetAxis for smoother animation UNITY3D

我有一个问题,想知道是否有更简单的方法来解决。

我正在使用 Input.GetAxis(),例如,假设水平。

按住 D-> 和 Input.GetAxis("Horizontal") 将导致值逐渐从 0 变为 1。 释放 D-> 会逐渐将其降低到 0。

这是我的问题。如果我要按住 D->,然后按下 A<- 并释放 D->,该值不是逐渐下降 1 到 0,然后 0 到 -1,而是立即捕捉到 0 并继续逐渐下降到 -1 .

我正在使用这个值来控制我的动画,它让它们变得丑陋。 有没有一种方法可以像我想要的那样在没有太多代码的情况下使值逐渐下降,或者我是否缺少动画师的一些设置?

    float tempADFloat = playerAnim.GetFloat("ADInput");

    if (_ADInput != 0)
    {
        playerAnim.SetFloat("ADInput", Mathf.Clamp(tempADFloat + 0.1f * _ADInput, -1f, 1f));

    } else
    {
        if ((tempADFloat < 0.2 && tempADFloat > -0.2))
        {
            playerAnim.SetFloat("ADInput", 0);

        } else if (tempADFloat < 0)
        {
            playerAnim.SetFloat("ADInput", tempADFloat + 0.1f);

        } else if (tempADFloat > 0)
        {
            playerAnim.SetFloat("ADInput", tempADFloat - 0.1f);
        }
    }

playerAnim 是我的角色动画师参考。 这样动画就可以平滑过渡了。

我使用 tempADFloat < 0.2 而不是 tempADFloat < 0.1 因为无法及时设置和检查该值。它基本上会来回跳0.1到0