- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的协程函数只能运行一次。 _isPaused
变量为 true
。找不到我做错了什么。
IEnumerator Movement()
{
while (_isPaused) // I checked, it's true
{
Debug.Log("Some action");
yield return new WaitForSeconds(0.8f);
}
}
void Update ()
{
if (Input.GetKeyDown(KeyCode.P))
{
StartCoroutine(Movement());
}
}
Here是完整的代码:
最佳答案
这是您的代码:
while (_isPaused)
{
Debug.Log("Some action");
yield return new WaitForSeconds(0.8f);
}
您的 while
循环将在到达 WaitForSeconds
时暂停。它会暂停,因为您在按下“P”时在代码中的某处将 Time.timeScale
设置为 0
。这种行为是正常的。这样做是为了让您可以使用 Time.timeScale
暂停协程函数。一旦您将 Time.timeScale
设置回 1
,它将暂停并继续运行。
如果您不希望 Time.timeScale
在使用 WaitForSeconds
等待时暂停协程函数,则使用 WaitForSecondsRealtime
而不是 WaitForSeconds
。
while (_isPaused)
{
Debug.Log("Some action");
yield return new WaitForSecondsRealtime(0.8f);
}
这是因为 WaitForSeconds
是用 Time.deltaTime
或类似的属性实现的,当 Time.timeScale
设置为 0
导致计时器暂停,而 WaitForSecondsRealtime
是使用 Time.realtimeSinceStartup
实现的,它不受 Time 的影响.timeScale
完全没有。
关于c# - 协程函数停止在 WaitForSeconds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51566097/
在我的设置中,我试图有一个界面 Table继承自 Map (因为它主要用作 map 的包装器)。两个类继承自 Table - 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
Rust Nomicon 有 an entire section on variance除了关于 Box 的这一小节,我或多或少地理解了这一点和 Vec在 T 上(共同)变体. Box and Vec
我是一名优秀的程序员,十分优秀!