【发布时间】:2021-02-11 00:43:44
【问题描述】:
我在方法调用 displayCubeInOrder(); 中实现了一个简单的 for 循环(如下所示);
public void displayCubeInOrder(Slider slider)
{
for (int i = 1; i < 10; i++)
{
if(slider.Value >= (i-1)/10 && slider.Value < i/10)
{
displayCube(i - 1);
break;
}
}
}
然后我在Events下调用这个方法,On Value Updated (SliderEventData)。
但是,for 循环似乎只执行了一次。感谢您对这里出了什么问题的任何建议。
更新: 好吧,我设法解决了这个问题。我的代码 sn-p 中有一个巨大的错误。我的条件从未得到满足。滑块值是浮点数,因此在我的情况下,我将浮点数与整数进行比较。我认为 C# 中的 (/) 除法返回一个整数。当我将 (i-1)/10 和 i/10 转换为 (float)(i-1)/10 和 (float)(i/10) 时,它起作用了。同样,我认为以这种方式比较两个浮点数并不是一个好习惯。 derHugo 给出了很好的回答。
【问题讨论】:
-
你的意思是第一次更新滑块上的值就可以了,但是后续更新不调用displayCubeInOrder?
标签: c# for-loop unity3d events slider