繁体   English   中英

www.text在Unity3D中返回奇怪的值(C#)

[英]www.text returning strange value in Unity3D (C#)

我正在使用Unity 3D的WWW来发出http请求:http: //docs.unity3d.com/ScriptReference/WWW.html

似乎无论我试图访问什么样的数据,它只会返回: 每次。 我已经尝试过json文件,我尝试过只生成一个字符串的php。 我似乎无法访问服务器上的值。

C#:

public string url = "http://www.onelittledesigner.com/data.php";

IEnumerator Start() {
    WWW www = new WWW(url);
    yield return www;

    if (!string.IsNullOrEmpty(www.error)) {
        Debug.Log(www.error);
    } else {
        Debug.Log(www.text);
    }

}

PHP:

<?php
  echo "textiness";
?>

注意:我已成功使用www.texture将图像从服务器中拉出。 但是,www.text似乎不起作用。

通过评论复制答案,并进行一些额外的测试。 我的结果在评论中。 请注意,使用默认,ASCII或UTF8可以在我的机器上运行 - 它也应该在您的机器上。

    // returned from www.bytes, copied here for readability
    byte[] bytes=new byte[]{116, 101, 120, 116, 105, 110, 101, 115, 115};

    string customDecoded=""; 
    foreach(var b in bytes)
        customDecoded+=(char)b; 

    Debug.Log(customDecoded); // textiness
    Debug.Log(System.Text.Encoding.Default); // System.Text.ASCIIEncoding
    Debug.Log(System.Text.Encoding.Default.GetString(bytes));  // textiness
    Debug.Log(System.Text.Encoding.ASCII.GetString(bytes));  // textiness
    Debug.Log(System.Text.Encoding.Unicode.GetString(bytes)); // 整瑸湩獥
    Debug.Log(System.Text.Encoding.UTF7.GetString(bytes)); // textiness
    Debug.Log(System.Text.Encoding.UTF8.GetString(bytes)); // textiness
    Debug.Log(System.Text.Encoding.UTF32.GetString(bytes)); // 整湩
    Debug.Log(System.Text.Encoding.BigEndianUnicode.GetString(bytes)); // 瑥硴楮敳

请检查System.Text.Encoding.Default是否为ASCIIEncoding,可能是某些内容更改了默认值?

我的回答是假设这个脚本附加到MonoBehaviour。 它不起作用的原因是因为你试图将Start方法变成一个共同例程,但只做了一半。

这是你需要做的

private void Start()
{
   StartCoroutine(StartCR());
}

IEnumerator StartCR() 
{
   WWW www = new WWW(url);
   yield return www;

   if (!string.IsNullOrEmpty(www.error)) {
    Debug.Log(www.error);
   } else {
    Debug.Log(www.text);
   }
}

Unity将调用Start方法,该方法将正确调用您的共同编程的WWW代码。 这将等待您的网络响应完成,而不是只返回任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM