0

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

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

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

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

我使用这个值来控制我的动画,这让它们变得丑陋。有没有办法让价值逐渐下降,就像我想要的那样没有太多代码,或者我错过了动画师的一些设置?

4

1 回答 1

0
    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

于 2016-08-29T14:14:12.540 回答