iam编写我自己的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()还是存在其他问题?
答案 0 :(得分:1)
您不启动协程。要么
IEnumerator Start()
{
return test();
}
或
void Start()
{
StartCoroutine(test());
}
编辑:调用cr.MoveNext()会将枚举数移动到下一个条目,而无需应用WaitForSeconds逻辑