C# 计算从客户端到服务器请求数据所需的时间-Unity
因此,标题说明了一切——然而,我尝试的方法似乎不起作用,我也不知道为什么C# 计算从客户端到服务器请求数据所需的时间-Unity,c#,unity3d,client-server,C#,Unity3d,Client Server,因此,标题说明了一切——然而,我尝试的方法似乎不起作用,我也不知道为什么 public static IEnumerator RetrieveCharacterData(string userid, Action<string> charSelectResponse) { WWWForm data = new WWWForm(); data.AddField("userid", userid); // Send request to server
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);
}
公共静态IEnumerator RetrieveCharacterData(字符串用户ID,操作字符SelectResponse)
{
WWWForm data=新的WWWForm();
data.AddField(“userid”,userid);
//向服务器发送请求
WWW characterSelectRequest=新建WWW(Helper.Constants.kCharacterSelectUrl,数据);
浮动时间=0.0f;
而(!characterSelectRequest.isDone)
{
elapsedTime+=Time.deltaTime;
Debug.Log(elapsedTime);//实时打印正确的数据
if(elapsedTime>=Helper.Constants.ConnectionTimeoutInterval)
{
Log(“服务器错误:连接已超时。”);
收益返回空;
}
}
//这不起作用-打印垃圾值
Debug.Log(elapsedTime);
如果(!characterSelectRequest.isDone | |!string.IsNullOrEmpty(characterSelectRequest.error))
{
charSelectResponse.Invoke(null);
屈服断裂;
}
charSelectResponse.Invoke(characterSelectRequest.text);
}
- 因此,经过一些编辑后,这已使我最接近我想要的-然而,当我尝试获取实际的elapsedTime时,它会打印出垃圾值
如果(Time.Time-startTime>=Helper.Constants.ConnectionTimeoutInterval)
如果(Time.Time-startTime>=Helper.Constants.ConnectionTimeoutInterval)
那
=
应该是这不是问题是的,你是对的。这实际上就是问题所在。+1尽管如此,您需要修复此问题,以便在达到超时(ConnectionTimeoutInterval)时退出函数。你目前的答案并没有做到这一点。我想这就是为什么会有if语句。我的问题不是计算,而是为什么elasedTime会有一个垃圾值…这不是问题是的,你是对的。这实际上就是问题所在。+1尽管如此,您需要修复此问题,以便在达到超时(ConnectionTimeoutInterval)时退出函数。你目前的答案并没有做到这一点。我想这就是为什么会有if语句。我的问题不是计算,而是为什么elasedTime会有一个垃圾值。。。