1
コルーチンの戻り値を取得する方法は? しかし、getElapseSecond()関数はコルーチン内にあってはなりません。Unity3dコルーチンで戻り値(int)を取得するにはどうすればよいですか?
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の答えに記述されているようにコールバック関数を使用します。 – Programmer