unity 协程return一个函数会先执行函数吗

 我来答
e年少無知
2017-03-18 · TA获得超过390个赞
知道小有建树答主
回答量:718
采纳率:0%
帮助的人:145万
展开全部
为什么总是有人会问相同的问题呢,这个问题在知道上不知道有多少人回答相同的答案了
以下是我的回答
----------------------------------------------------------------------------------------

主要用于等待,比如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循环,换句话说就是每一帧循环一次,这样,渲染就可以在这段时间运行,程序就看起来不会卡住了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式