【问题标题】:No jumping of values on GetAxis for smoother animation UNITY3DGetAxis 上的值没有跳跃以获得更流畅的动画 UNITY3D
【发布时间】:2016-08-28 19:01:20
【问题描述】:

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

我正在使用 Input.GetAxis(),例如,假设为 Horizo​​ntal。

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

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

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

【问题讨论】:

    标签: animation unity3d animator


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-01-16
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      相关资源
      最近更新 更多