我正在尝试制作计时器进度条。我正在使用滑块UI元素并通过代码更改它的值。然而,似乎该值正在向上舍入到最接近的整数,即使它是浮点而不是int。我这样说是因为在前半段,酒吧已满,下半场是空的。有人可以帮忙吗?感谢。
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;
}
答案 0 :(得分:3)
time
是int,totalTime
是int。如果你将两者都分开,那么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;
}
或者这个:
ncfname <- sprintf('ABC%03d.nc', i)
应该有用。