2016-08-28 65 views
0

我有我不知道是否有解決簡單的方法的問題。流暢的動畫上GetAxis值沒有跳躍UNITY3D

我使用Input.GetAxis(),例如,假設水平。

控股D->與Input.GetAxis(「水平」)將導致從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.2而不是tempADFloat < 0.1因爲無法及時設置和檢查該值。它基本上會以0.1到0來回跳躍