我只是想知道我无用的 if 语句是否会影响我的渲染时间?我正在制作一个 unity2D 游戏,在
update
方法中,我使用了一些 if 语句,它们的条件可能会每分钟一次 true
,但此方法会更新每一帧。
void Update(){
for (long i = 0; i< 100000000000000; i++)
{
if (i == 999)
{
"lots of functions"
}
}
}
当条件不成立时,它会忽略其余的
if
吗?
我的问题是,如果“if-statement”的条件不是true
,“if-statement”的功能会影响渲染吗?或者当他们的条件是false
时他们会被忽略吗?
如果语句为 false,则
if
语句的主体将不会执行,并将被忽略。
如果您非常担心在如此多的迭代中拖延执行,我建议您在
while
内部使用 IEnumerator
循环,如下所示:
IEnumerator DoLoop(){
long i = 0;
while (i< 100000000000000)
{
if (i == 999)
{
"lots of functions"
}
i++;
yield return null;
}
}
这样,就可以在循环运行的同时执行其他事情。
每次到达
i == 999
语句(即每帧)时,都会评估条件(例如 if
),但嵌套语句 ("lots of functions"
) 仅在以下情况下执行(且仅占用渲染时间):条件为真。这就是 if
声明的全部要点。