【发布时间】:2018-02-16 23:10:44
【问题描述】:
如何在协程中获取返回值? 但是,getElapseSecond() 函数不应该在协程内部。
WWW www;
public IEnumerator requestNowTime()
{
www = new WWW(url);
yield return www;
}
public IEnumerator getNowTime()
{
yield return StartCoroutine(requestNowTime());
}
public int getElapseSecond()
{
StartCoroutine(getNowTime());
// You are trying to load data from a www stream which has not completed the download yet.
int totalSeconds = 0;
DateTime dt = Convert.ToDateTime(www.text);
TimeSpan compareTime = dt - Convert.ToDateTime(getTime());
totalSeconds = (int)compareTime.TotalSeconds;
return totalSeconds; //0
}
【问题讨论】:
-
让你的
getElapseSecond也成为一个协程函数,然后使用Action,如复制中所示。您也可以将其保留为 void 函数,然后使用 Isuka 回答中所述的回调函数。
标签: c# unity3d return coroutine