c# - WaitForSeconds 在“自定义”协程中不起作用
问题描述
我正在编写我自己的 CoroutineScheduler,它看起来(简化)如下:
void Start()
{
cr = test();
}
void Update()
{
cr.MoveNext();
}
IEnumerator test()
{
int i = 0;
while (true)
{
print(i++);
yield return new WaitForSeconds(3);
}
}
问题是我的函数不是每 3 秒打印一个数字,而是每帧打印一个数字。
这是因为我不使用 StartCoroutine() 还是还有其他问题?
解决方案
您不启动协程。要么做
IEnumerator Start()
{
return test();
}
或者
void Start()
{
StartCoroutine(test());
}
编辑:调用 cr.MoveNext() 只会将枚举数移动到下一个条目,而不应用 WaitForSeconds 逻辑
推荐阅读
- facebook - Facebook Messenger 按钮错误:“操作不成功发送您的消息时出错...”
- python - 显示图像时尺寸无效
- python - 如何制作交互式 matplotlib 图例,以便从绘图中删除线条?
- java - 将 setSample 与 WritableRaster 一起使用
- ios - View的图层在创建后看起来错位了
- qt - ScrollView 自动滚动聚焦子组件 QML
- javascript - 从 reactjs 调用 Php 脚本授予对 XMLHttpRequest 的访问权限已被 CORS 策略阻止
- java - 如何在 Optional.map() 中使用方法引用
- python - Django Rest Framework 中的嵌套验证
- c# - Facebook 与 azure 功能的集成