我有一个问题,我想知道是否有更简单的解决方法。
我正在使用Input.GetAxis(),例如,让我们说水平。
持D->使用Input.GetAxis(“Horizontal”)将导致值逐渐从0变为1。 释放D->将逐渐将其恢复为0。
这是我的问题。如果我按住D->,则按A< - 并释放D->,该值而不是逐渐下降1到0,然后0到-1,而是立即捕捉到0并继续逐渐下降到-1
我正在使用此值来控制我的动画,这使得它们都很难看。 有没有一种方法可以让我的价值逐渐下降,就像我打算没有太多代码那样,或者我错过了动画师的一些设置?
答案 0 :(得分: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&lt; 0.2而不是tempADFloat&lt; 0.1因为无法及时设置和检查该值。它基本上最终会来回跳0.1到0