以下是我的回答
----------------------------------------------------------------------------------------
主要用于等待,比如www进行服务器请求的时候,由于服务器和网络有延迟,不可能立刻获得数据,这时候,就可以 yield return www.
又比如,想延迟2秒之后做一些事情,就可以yield return new WaitForSecend(2)
Coroutine可以叫做协程,协程里面的主要工作除了正常的逻辑之外就是各种等待,等待其他协程完成,等待www,等待若干时间,等待异步处理等等。
其中
开启一个协程代码为
StartCoroutine(函数名(函数参数));
开启一个协程并等待这个协程完成的代码为
yield return StartCoroutine(函数名(函数参数));
为什么需要协程?因为不希望程序在等待的时候让主线程卡死
比如
public void Start()
{
while(true)
{}
}
那么程序就会卡死,因为无时无刻不在while循环,渲染没法进行
但是加入用协程
public IEnumerator Start()
{
while(true)
{
yield return 1
}
}
那么程序就明简不会卡死,原因在于yield return 1这句话让程宴如序等待了一帧,然后再运行while循环,换句激祥裤话说就是每一帧循环一次,这样,渲染就可以在这段时间运行,程序就看起来不会卡住了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)