c#禁用条件

时间:2016-09-04 18:18:34

标签: c# unity3d region

所以问题是:我的代码中有状态。我想将它们划分为区域,并在某些条件下启用或禁用它们。代码位于名为LateUpdate的循环Unity函数中。我希望这样做可以节省处理器时间,而不是使用布尔值或枚举。 我能这样做吗?如果是这样,怎么样? 加。 info:我需要在运行时禁用此功能。该脚本是一个播放GIF的图像序列播放器。我有一个热身部分然后循环部分。我可以用bool写它,但正如我所说,我需要节省处理器时间,因为这将是一个移动游戏。

一些代码:

void LateUpdate ()
{
    if (warmUp)
    {
        currentImageIndex = Mathf.RoundToInt(Time.time * frameRate);
        currentImageIndex = currentImageIndex % spriteSheet.Length;
        spriteRenderer.sprite = spriteSheet[currentImageIndex];
        warmUp = false;
    }
    if (updateEnabled && !warmUp)
    {
        switch (playMode)
        {
            case PlayMode.order:
                currentImageIndex = Mathf.RoundToInt(Time.time * frameRate);
                currentImageIndex = currentImageIndex % spriteSheet.Length;
                spriteRenderer.sprite = spriteSheet[currentImageIndex];
                break;
            case PlayMode.random:
                updateEnabled = false;
                StartCoroutine(RandomizedPlay());
                break;
        } 
    }

}

1 个答案:

答案 0 :(得分:0)

您正在进行的简单if检查是在运行时禁用代码的正确方法,并不总是需要在函数内运行。

您应该学会如何使用the unity profiler on the mobile device,减速的来源(如果您有的话)不是来自您的if声明本身。

我想说,如果检查中的每一项都很有可能在分析器期间甚至不会超过CPU时间的0.00%。