StartCoroutione()开启一个协程。当脚本中有多个协程的时候,StopAllCoroutines()停止脚本中所有的协程。StopCoroutine()停止脚本中的一个协程。
举个例子:妈妈准备开始做菜,但发现酱油没有了。为了能暗示吃上饭,所以妈妈让孩子去买酱油。这样,孩子去买酱油,妈妈可以继续做她的菜。等孩子买酱油回来了,菜也要出锅了,这个时候,妈妈便可以将买回来的酱油放入菜里。就这样,二人协同合作地完成了整个做菜的任务。这个过程没有涉及协程的方法,只是解释了协程的原理。
public class CoroutineDemo : MonoBehaviour
{
float DaJiangYouTimeGo = 0f;
bool DaJiangYouStart = false;
void Start ()
{
Cooking ();
}
void Update ()
{
if (DaJiangYouStart)
{
DaJiangYouTimeGo += Time.deltaTime;
if (DaJiangYouTimeGo>5.0f) //延迟5秒后,我把酱油买了回来
{
DaJiangYouOver ();
DaJiangYouStart = flase;
}
}
}
void Cooking()
{
print ("妈妈准备开始做菜:");
print ("洗好菜。");
print ("放好锅,烧热油");
print ("开始炒菜。");
print ("妈妈发现酱油没有了,让我去打酱油。");
DaJiangYou ();
print ("妈妈继续炒菜");
DaJiangYouOver ();
print ("妈妈使用了酱油,菜做好!");
}
void DaJiangYou (){
DaJiangYouStart = true;
print("我很听话地准备去买酱油了");
}
void DaJiangYouOVer ()
{
print("酱油买回来了。");
}
}