Android的Unity3d WWW类非常慢

Android的Unity3d WWW类非常慢,第1张

Android的Unity3d WWW类非常慢

没有设置可以加快速度

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
发出请求。将proxy变量设置
null
为,以加快请求速度。您必须在另一个应用程序中使用它,
Thread
或者使用其异步功能发出请求,否则,您将冻结游戏直到请求完成。

UnityThread
从这里开始抓取,因为本示例将使用Unity
ThreadPool
UnityThread
如果您想使用Unity
API(例如
Text
来自另一个组件的组件),则需要使用
Thread

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;    });}

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5615293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存