协程没有 运行 第二次尝试?
Coroutine doesnt run on second try?
目前,我的 OnGUI 功能上有这个过程:
void OnGUI ()
{
// process here that adds item on list
Counter = list.Count();
}
我有这段代码,运行它是计数器值更改时的一个函数。
private IEnumerator coroutine = null;
private int counter = 0;
private int limit = 5;
public int Counter
{
get{ return this.counter; }
set
{
this.counter = value;
if(this.counter == limit)
{
if(this.coroutine != null){ return; } // already running
this.coroutine = StartProcess();
StartCoroutine(this.coroutine); }
}
}
StartProcess 包含这个:
StartProcess ()
{
yield return StartCorotuine (Process1);
yield return StartCorotuine (Process2);
}
在我的第一个 运行 上一切顺利,但在我的第二个 运行 上,即使满足我的条件,我的计数器功能似乎也不再 运行ning 了?
当协程完成时,指向它的指针仍然有效,它不会重置为 null,你可以保留一个死协程的处理程序,只需在末尾添加 =null 就可以了
目前,我的 OnGUI 功能上有这个过程:
void OnGUI ()
{
// process here that adds item on list
Counter = list.Count();
}
我有这段代码,运行它是计数器值更改时的一个函数。
private IEnumerator coroutine = null;
private int counter = 0;
private int limit = 5;
public int Counter
{
get{ return this.counter; }
set
{
this.counter = value;
if(this.counter == limit)
{
if(this.coroutine != null){ return; } // already running
this.coroutine = StartProcess();
StartCoroutine(this.coroutine); }
}
}
StartProcess 包含这个:
StartProcess ()
{
yield return StartCorotuine (Process1);
yield return StartCorotuine (Process2);
}
在我的第一个 运行 上一切顺利,但在我的第二个 运行 上,即使满足我的条件,我的计数器功能似乎也不再 运行ning 了?
当协程完成时,指向它的指针仍然有效,它不会重置为 null,你可以保留一个死协程的处理程序,只需在末尾添加 =null 就可以了