0
タイトルはすべてそうだと言いますが、私が試した方法論はうまくいかないと思われます。クライアントからサーバーにデータを要求するのにかかる時間を計算する - Unity
public static IEnumerator RetrieveCharacterData(string userid, Action<string> charSelectResponse)
{
WWWForm data = new WWWForm();
data.AddField("userid", userid);
// Send request to server
WWW characterSelectRequest = new WWW(Helper.Constants.kCharacterSelectUrl, data);
float elapsedTime = 0.0f;
while (!characterSelectRequest.isDone)
{
elapsedTime += Time.deltaTime;
Debug.Log(elapsedTime); // This prints in real time the correct data
if (elapsedTime >= Helper.Constants.ConnectionTimeoutInterval)
{
Debug.Log("Server error: Connection has timed out.");
yield return null;
}
}
// This doesn't work - prints out garbage values
Debug.Log(elapsedTime);
if (!characterSelectRequest.isDone || !string.IsNullOrEmpty(characterSelectRequest.error))
{
charSelectResponse.Invoke(null);
yield break;
}
charSelectResponse.Invoke(characterSelectRequest.text);
}
- ので、いくつかの編集をした後、これは私が欲しいものに最も近いを持っている - 私は試してみて、実際の経過時間を取得する場合しかし、それはゴミ値を出力します。
>=
は<
あるべき
これは問題ではありません – Programmer
はい、正しいです。これは実際には問題です。+ 1タイムアウト(ConnectionTimeoutInterval)に達したときにこの関数を終了するには、これを修正する必要があります。あなたの現在の答えはそれをしません。私はその理由がif文を持っている理由だと思う。 – Programmer
私の問題は計算ではありません。そのため、elasedTimeにはガベージ・バリューが出てきます –