【问题标题】:Unity3d WWW-class is very slow with androidUnity3d WWW-class在android上非常慢
【发布时间】:2017-04-28 06:27:55
【问题描述】:

我想使用 WWW 类下载一个简单的 json。 我的问题是,在 android 设备中完成任务需要 3 到 4 秒,但在编辑器中它在毫秒内完成......

我做错了什么?

这是我的代码:

string url = "SomeURL/app.Json";
WWW www = new WWW (url);
www.threadPriority = ThreadPriority.High;
DebugText.text = "get json started";
yield return www;
DebugText.text = "Json Downloaded";

PS1:我为两个设备使用了相同的网络。

PS2 : Json 文件小于 1 KB。

【问题讨论】:

  • 我猜你没有做错什么,它的平均速度。
  • @MohammadFaizanKhan 那么为什么在编辑器中它的速度超级快?
  • 电脑网速和手机网速是否匹配?
  • 可能是您的计算机速度快而您的设备速度慢很多?会不会是你的电脑连接了网络,而你的手机使用了 wifi?
  • @MohammadFaizanKhan 都使用相同的高速 LTE 网络。

标签: android json unity3d


【解决方案1】:

没有加速WWW的设置。如果它很慢,则意味着它要么在移动设备上实施不佳,要么您的设备又旧又慢。请注意,您的计算机在大多数情况下都比您的移动设备快,因此您认为这可能是慢的。


替代品

1。现在,让我们假设WWW 是问题所在。有一个新的 Unity API 应该替换 WWW。这就是UnityWebRequest API。

它真的很容易使用:

IEnumerator makeReuest()
{
    UnityWebRequest www = UnityWebRequest.Get("YourURL");
    yield return www.Send();
    string text = www.downloadHandler.text;
}

2.使用 C# WebRequest 发出请求。将代理变量设置为null,因为这可以加快请求速度。您必须在另一个 Thread 中使用它或使用其异步函数发出请求,否则,您将冻结您的游戏,直到请求完成。

here 获取 UnityThread,因为此示例将 Unity ThreadPool,如果您想使用 Unity API,例如来自另一个 ThreadText 组件,则需要 UnityThread

void Awake()
{
    //UnityThread.initUnityThread();
    downloadData();
}

void downloadData()
{
    ThreadPool.QueueUserWorkItem(new WaitCallback(makeRequest));
}

private void makeRequest(object a)
{
    string url = "";
    string result = "";

    var request = (HttpWebRequest)WebRequest.Create(url);
    //Speed up
    request.Proxy = null;

    using (var response = (HttpWebResponse)request.GetResponse())
    {
        var encoding = Encoding.GetEncoding(response.CharacterSet);

        using (var responseStream = response.GetResponseStream())
        using (var reader = new StreamReader(responseStream, encoding))
            result = reader.ReadToEnd();
    }

    UnityThread.executeInUpdate(() =>
    {
        //Use in Unity Thread
        yourTextComponent.text = result;
    });
}

希望其中之一可以加快您的请求。如果这没有发生,那么这就是您设备的限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    相关资源
    最近更新 更多