2016-08-28 8 views
0

解決方法が簡単かどうか疑問に思っています。より滑らかなアニメーションのためにGetAxisに値をジャンプさせないUNITY3D

私はInput.GetAxis()を使用しています。たとえば、Horizo​​ntalとしましょう。

ホールディングInput.GetAxisとD->(「横」)が徐々に0から1のD-を解放 を予定値になります>徐々に0

に戻ってダウンし、それをもたらすでしょう。ここに私の問題です。もし私がD->を押し続けるならば、A< - を押してD->を放し、値を徐々に1から0に落としてから0から-1にするのではなく、即座に0にスナップして徐々に-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.1の代わりにtempADFloat < 0.2を使用します。値を設定してチェックインすることができないためです。基本的には0.1から0までジャンプすることになります。

関連する問題