Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算从客户端到服务器请求数据所需的时间-Unity_C#_Unity3d_Client Server - Fatal编程技术网

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会有一个垃圾值。。。