Сумма пополнения Unity lerp возвращает неправильное значение - PullRequest
1 голос
/ 06 марта 2019

Попытка отобрать количество заполнения бара здоровья.

Иметь этот код:

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 Ответ

3 голосов
/ 06 марта 2019

Ваш вопрос немного скуден в деталях. Но причина, по которой вы не получаете 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
}
...