C# “我是否解释?”;“坏循环”;代码正确吗?

C# “我是否解释?”;“坏循环”;代码正确吗?,c#,unity3d,C#,Unity3d,我养成了以下面所示的方式编写“循环”代码的习惯。我是一个自学成才的程序员,我只是想知道这是否真的有必要。(本例为Unity C#): 例如: 请问: void Update() { //GameOver Procedure if(shipCurrentHP <= 0 && GameOver == false) { StartCoroutine(BlowUp()); GameOver = tru

我养成了以下面所示的方式编写“循环”代码的习惯。我是一个自学成才的程序员,我只是想知道这是否真的有必要。(本例为Unity C#):

例如: 请问:

void Update()
{
 //GameOver Procedure

       if(shipCurrentHP <= 0 && GameOver == false)
        {
            StartCoroutine(BlowUp());
            GameOver = true;
        }
}
void Update()
{
//配角程序

如果(shipCurrentHP您的第二个示例将在初始条件满足后在每一帧中启动另一个协同程序,如果用户在该条件满足后不做任何操作,则很可能会耗尽机器的所有RAM。通常应避免在更新中执行操作,除非您正在执行实际需要执行每一帧的操作

这不是更好也不是更糟。这只是不同。在第二种情况下,您缺少一个条件,因此无法比较这两个过程。不过,您可以做的一件事是,编写
!GameOver
,而不是
GameOver==false
,这在性能或任何方面都不好。在第二种情况下,您将启动blow-up协程谢谢:但是如果(shipCurrentHP>那么游戏结束了…那么基本上有必要检查第二种情况,这样“循环”就可以停止执行了吗
change
shipCurrentHP
?如果不是,那么下次调用
Update
时,条件仍然是真的……谢谢。这就是我想知道的,我也同意,此脚本用于OnTiggerEnter{},但这只是一个示例:)。
void Update()
{
     //GameOver Procedure

        if(shipCurrentHP <= 0)
        {
           StartCoroutine(BlowUp());
           GameOver = true;
        }
}