最新消息:

Unity 下载网络文件

网络下载功能在游戏中已经非常普遍,它就好比游戏对外的接口,可动态拓展游戏的内容,比如下载游戏场景、人物模型、游戏音乐和游戏视频等。资源下载完毕后,可被程序读取并合并到游戏中。Unity 为小伙伴们提供了 WWW 下载类,它的原理是以 GET 请求的形式向服务器请求数据,然后等待服务器返回,在向服务器请求数据时,将请求的地址传入其构造函数即可开始下载。在下载过程中,可以使用 Yield() 方法或者 isDone() 方法来判断下载是否完成。

下载文件时,首先需要知道其下载地址(可以指向本机或网络),然后通过该地址来调用 Unity 中的下载方法。文件下载成功后,会保存在 WWW 对象中。使用 Unity 提供的下载方法,小伙伴们可以任意下载文件,但需要注意的是,目前系统只支持 PNG 和 JPG 类型贴图文件的下载。如果下载失败,系统会抛出异常,并使用 Debug.Log(www.error) 方法打印错误信息。本例将使用下载的贴图文件来更换 Plane 对象自身的贴图,具体代码如下所示。

using UnityEngine;
using System.Collections;

public class CSharp : MonoBehaviour {
 private Texture tex0; //本机下载的贴图
 private Texture tex1; //网络下载的贴图

 IEnumerator loadLocal() {
 if(tex0 == null) {//本机下载
 WWW date = new WWW("file://" + Application.dataPath + "/0.png"); //资源在本机的路径
 yield return date; //等待下载完成
 tex0 = date.texture; //得到下载的贴图
 }
 renderer.material.mainTexture = tex0; //更换为下载的贴图
 }
 
 IEnumerator loadNetWork() {//网络下载
 if(tex1 == null) {
 WWW date = new WWW("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505812647970&di=2a59a6c055953ad73cf317344cbef568&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F6d81800a19d8bc3e3bad2adf888ba61ea8d34579.jpg"); //资源的网络路径
 yield return date; //等待下载完成
 tex1 = date.texture; //得到下载的贴图
 }
 renderer.material.mainTexture = tex1; //更换为下载的贴图
 }

 void OnGUI() {
 if(GUILayout.Button("本机下载贴图")) {
 StartCoroutine(loadLocal());
 }
 if(GUILayout.Button("网络下载贴图")) {
 StartCoroutine(loadNetWork());
 }
 }
}

注意: 小伙伴们可以使用 WWW 类下载资源包、图片、声音和视频等文件,但需要注意的是,所下载的视频与音频文件必须为 OGG 类型,否则无法播放。

好了,Unity 下载网络文件 就分享到这里,非常感谢你的来访。如果你喜欢本站,请不要忘记收藏本站,以便下次继续访问;也可以 关注站长微博 随时获取最新动态。你的支持就是我最大的动力!

转载请注明:爱维科斯 » Unity 下载网络文件

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者