unity2D(c#)会读取无用的“if”结构吗?

问题描述 投票:0回答:2

我只是想知道我无用的 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
时他们会被忽略吗?

c# unity-game-engine if-statement
2个回答
0
投票

如果语句为 false,则

if
语句的主体将不会执行,并将被忽略。

如果您非常担心在如此多的迭代中拖延执行,我建议您在

while
内部使用
IEnumerator
循环,如下所示:

IEnumerator DoLoop(){
    long i = 0;

    while (i< 100000000000000)
    {
        if (i == 999)
        {
            "lots of functions"
        }

        i++;
        yield return null;
    }
}

这样,就可以在循环运行的同时执行其他事情。


0
投票

每次到达

i == 999
语句(即每帧)时,都会评估条件(例如
if
),但嵌套语句 (
"lots of functions"
) 仅在以下情况下执行(且仅占用渲染时间):条件为真。这就是
if
声明的全部要点。

© www.soinside.com 2019 - 2024. All rights reserved.