C# 与仅用0.5秒使用StartCustomer有什么区别

C# 与仅用0.5秒使用StartCustomer有什么区别,c#,unity3d,C#,Unity3d,如果我只返回新的WaitForSeconds(0.5f)并只使用普通函数,有什么区别吗? 此外,有一个概念,我想我可能误解了。这些正常的功能像吗 void Update(){ command1 command2 } 编译完command1后,开始编译command2。或者同时编译它们,因为它们 属于同一组。请帮助解决问题。Sor表示英语不好。是的,有区别 在解析yield语句之前,将控件返回主线程的协同例程。(在本例中,您的时间延迟为0.5秒),然后它将再次在主线程上恢复下一行代码 函数将

如果我只
返回新的WaitForSeconds(0.5f)
并只使用普通函数,有什么区别吗? 此外,有一个概念,我想我可能误解了。这些正常的功能像吗

void Update(){
command1 
command2 
}
编译完command1后,开始编译command2。或者同时编译它们,因为它们
属于同一组。请帮助解决问题。Sor表示英语不好。

是的,有区别

在解析yield语句之前,将控件返回主线程的协同例程。(在本例中,您的时间延迟为0.5秒),然后它将再次在主线程上恢复下一行代码


函数将在主线程上按顺序执行其所有操作,并且在执行所有项或点击返回语句之前不会返回控件。

您能重新表述您的问题吗?我不明白
command1
command2
正在一个接一个地运行,但在同一帧中。也许一些基本的编码教程会对你有所帮助:如果你有一个协程,它的等待时间为0.5s,一个会等待0.5s,另一个可能不会。所以函数在每个帧中编译,command1编译,然后command2编译。因为它们不是同时编译的,所以我想内部时间可能是0.002s。因此,如果我使用corotine解决方案:屈服等待0.002秒。两种类型的编码是相同的?它不是那样工作的。协同程序()不是多线程的。我不明白为什么协同程序不是多线程的,这与这个问题有关。但是有区别吗,在Void Update()中,即使你设置了计时器或其他什么,它最终还是会进入下一个火焰,这意味着它是有节奏的,时间是固定的;如果您使用coroutine(),那么当您设置时间延迟时,它可能会发生在两个或三个火焰上,这不是有节奏的,时间是不固定的。因此,它可以执行一些事情,如动画播放并等待其结束,然后启动另一个命令,这在void Update()中无法完美执行