Unity3d unity中的延迟函数是否比WaitForSeconds()快?

Unity3d unity中的延迟函数是否比WaitForSeconds()快?,unity3d,Unity3d,我有一个项目,需要延迟功能,这是不需要很长时间。。我尝试过使用WaitForSeconds(),但结果也需要很长时间 我已经给出了小参数0.0000000001f,它仍然是一样的,没有任何变化 如何获得比此函数(WaitForSeconds())更快的延迟 提前感谢:)您可以使用 Update() { } 每帧调用一个函数(;)“比0.000000000 1F更快的延迟”这听起来有点让人困惑,因为你实际上不需要延迟这个时间。也许我就是不明白。但是好吧,让我们尝试一些有用的东西。您可以使用: 这

我有一个项目,需要延迟功能,这是不需要很长时间。。我尝试过使用WaitForSeconds(),但结果也需要很长时间

我已经给出了小参数0.0000000001f,它仍然是一样的,没有任何变化

如何获得比此函数(WaitForSeconds())更快的延迟


提前感谢:)

您可以使用

Update() {
}
每帧调用一个函数(;)

“比0.000000000 1F更快的延迟”这听起来有点让人困惑,因为你实际上不需要延迟这个时间。也许我就是不明白。但是好吧,让我们尝试一些有用的东西。您可以使用:

这将是真正的瞬间。如果你需要一个小嗝,可以这样做,调整逗号后的时间(以秒为单位):

Invoke("methodname", 0.01f);
如果您想要像Update()方法这样的固定方法,但速度不是很快,可以尝试使用固定帧速率方法

FixedUpdate(){
//code here: slower than Update(); But time fixed instead of Invoke();
}

或者试着找一个特定的时间

这种情况下不能使用WaitForSeconds,因为它是通过Unity中的协程系统处理的,并且协程间隔检查的速率几乎与您的帧速率相同(大约15-30ms间隔)。因为协程不是线程,事实上,协程和其他与MonoBehavior相关的东西运行在同一个线程(主线程)上。因此,如果使用新的WaitForSeconds(0.0001f),很可能与新的WaitForSeconds(0.01f)几乎相同


我不知道为什么您的程序需要如此小的延迟,但由于这种延迟可能不会影响您的帧速率,您可以在代码中使用System.Threading.Thread.Sleep(…)或其他顺序延迟方法。但是,如果您的应用程序在后台使用SerialPort进行硬件连接(这在游戏中不需要!),需要较小的延迟,那么您可以在后台线程上执行这些工作,并使用调度队列与主线程共享结果。

我必须承认,当我看到您的问题时,我笑了。;)如果等待1/2秒的话,这种差异在整个计划中可以忽略不计。然而,即使在Unity中等待0.0000000001f的速度更快,它的准确度究竟有多高。更重要的是,你为什么要等这么短的时间?0.0000000001f小于60 FPS的间隔。因为它太小了,Unity很可能会在下一帧完成协同工作!只需使用一个普通的函数(哈哈:))我不确定你的情况如何,但也许你应该尝试使用Invoke()和WaitForEndOfFrame()
FixedUpdate(){
//code here: slower than Update(); But time fixed instead of Invoke();
}