Unity:进度条四舍五入到最接近的整数

Unity: Progress Bar rounding to nearest whole number

我正在尝试制作一个计时器进度条。为此,我使用了一个滑块 UI 元素,并通过代码更改了它的值。但是,该值似乎四舍五入到最接近的整数,即使它是浮点数而不是整数。我这样说是因为前半段时间酒吧是满的,后半段时间是空的。谁能帮忙?谢谢

public int totalTime = 4;
int time = 4;

public Slider clock;

// Use this for initialization
void Start () {

    time = totalTime;

    clock.value = CalculateTime();

    StartCoroutine(Timer());
}

IEnumerator Timer()
{

    yield return new WaitForSeconds(1);
    time = time - 1;
    clock.value = CalculateTime();
    if (time != 0)
    {
        StartCoroutine(Timer());

    }
    else
    {
        Fin();

    }
}

float CalculateTime()
{
    return time / totalTime;
}

time 是整数,totalTime 是整数。如果将两者相除,结果是 int 而不是 float。'' 其余结果将被丢弃。

要真正得到 float,您必须在除法期间将 int 转换为 float

至少,你潜水的两个数字之一必须是float才能得到float

这个:

float CalculateTime()
{
    return (float)time / totalTime;
}

这个:

float CalculateTime()
{
    return time / (float)totalTime;
}

或者这个:

float CalculateTime()
{
    return (float)time / (float)totalTime;
}

应该可以。