WWW是一个Unity开发中非常常用到的工具类,主要提供一般Http访问的功能,以及动态从网上下载图片、声音、视频Unity资源等。
主要支持的协议有:http://,https://,file://,ftp://(只支持匿名账号),其中file://便是访问本地文件。
下面是一个简单的用法,这里已异步加载图片未例:
IEnumerator LoadTexture(string url,Action<Texture2D> cb) { //这里的url可以是web路径也可以是本地路径file:// WWW www = new WWW (url); //挂起程序段,等资源下载完成后,继续执行下去 yield return www; //判断是否有错误产生 if (string.IsNullOrEmpty (www.error)) { //把下载好的图片回调给调用者 cb.Invoke (www.texture); //释放资源 www.Dispose (); } }
需要调用异步加载的地方只需简单几行代码:
StartCoroutine (LoadTexture ("image url",delegate(Texture2D tex) { /* * 图片下载完成,但是这里一定要注意,这个过程是异步的, * 所以这里一定要对使用这些图片的组建做判断, * 因为图片下载完成时,它们可能已经不存在了 */ }));