【发布时间】:2018-05-09 06:02:59
【问题描述】:
全部!一旦我的计数器达到某个数字,我就会尝试运行一个进程。
我目前在我的更新函数中有这部分代码:
if (counter == 17)
{
// must call process here
}
这是我要运行的进程
private void CallProcess()
{
StartCoroutine(StartProcess());
}
这是 IEnumerator 的全部代码
private IEnumerator StartProcess()
{
yield return StartCoroutine (Process1()); //once done, a bool here is set to true
if (proccess1_done)
{
yield return StartCoroutine (Process2());
if (process2_done)
{
process1_done = false;
process2_done = false;
}
}
}
当我在更新中调用 CallProcess() 时遇到问题,因为它会被一遍又一遍地调用。任何关于我应该如何修改我的代码的建议将不胜感激。
【问题讨论】:
-
为什么不像你使用
process1_done那样使用布尔值?类似于bool isStartingProcess -
正如@SwiftingDuster 所说,为什么不使用布尔值?在进入调用时关闭
isStartingProcess,即在CallProcess()中,并在协程结束时再次启用它,应该可以解决问题。 -
我已经尝试过 if (counter == 17) { isStartProcess = true} if (isProcess true) { CallProcess();} 但似乎都是重叠的。
标签: c# unity3d scripting ienumerator