unity填充量lerp返回错误的值

时间:2019-03-06 19:25:36

标签: c# unity3d fill lerp

试图控制健康栏的填充量。

拥有此代码:

public float lerpSpeed = 2;
public void FillBar()
{
    bar.fillAmount = Mathf.Lerp(0f, 0.7f, Time.deltaTime * lerpSpeed);
    Debug.Log(emotion.fillAmount);
}


函数运行时,在单击事件之后,bar.fillAmount仅变为0.28

1 个答案:

答案 0 :(得分:3)

您的问题在细节上很少。但是您没有超过0.28的原因是因为Mathf.Lerp的第三个参数表示

  

两个浮点之间的插值。

因此,要获取正确的数量,您需要设置一个变量,并在每次填充该条时更新其中的值,最好是在协程或更新循环中。

public float lerpSpeed = 2;
private float t = 0;

public void FillBar()
{
    bar.fillAmount = Mathf.Lerp(0f, 0.7f, t);
    t += Time.deltaTime * lerpSpeed
}