unity动态加载:工具类www
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) {
- /*
- * 图片下载完成,但是这里一定要注意,这个过程是异步的,
- * 所以这里一定要对使用这些图片的组建做判断,
- * 因为图片下载完成时,它们可能已经不存在了
- */
- }));