• WWW缓存方式


    缓存方式

    使用WWW.LoadFromCacheOrDownload接口。AssetBundles将保存在本地设备的Unity的缓存文件夹中。WebPlayer 有50MB的缓存上限,PC/Mac/Android/IOS应有有4 GB的缓存上限。这种方式也是加载AssetBundle推荐的方式。我们使用这种方式来实践一下。在Scripts文件夹中新建脚本:

    using System;
    using UnityEngine;
    using System.Collections;
    
    public class CacheBundle : MonoBehaviour
    {
    	public static readonly string BundleURL =
    #if UNITY_ANDROID
    		"jar:file://" + Application.dataPath + "!/assets/MyAssetBundles/shape/cube";
    #elif UNITY_IPHONE
    		Application.dataPath + "/Raw/MyAssetBundles/shape/cube";
    #elif UNITY_STANDALONE_WIN || UNITY_EDITOR
    		//我们将加载以前打包好的cube
     "file://" + Application.dataPath + "/MyAssetBundles/shape/cube";//由于是编辑器下,我们使用这个路径。
    #else
            string.Empty;
    #endif
    
    	//还记得吗?在cube这个AssetBundle中有两个资源,Cube1和Cube2
    	private string AssetName = "Cube2";
    
    	//版本号
    	public int version;
    
    	void Start()
    	{
    		StartCoroutine(DownloadAndCache());
    	}
    
    	IEnumerator DownloadAndCache()
    	{
    		// 需要等待缓存准备好
    		while (!Caching.ready)
    			yield return null;
    
    		// 有相同版本号的AssetBundle就从缓存中获取,否则下载进缓存。
    		using (WWW www = WWW.LoadFromCacheOrDownload(BundleURL, version))
    		{
    			yield return www;
    			if (www.error != null)
    				throw new Exception("WWW download had an error:" + www.error);
    			AssetBundle bundle = www.assetBundle;
    			GameObject cube = Instantiate(bundle.LoadAsset(AssetName)) as GameObject;
    			cube.transform.position = new Vector3(1.5f, 0f, 0f);
    			// 卸载加载完之后的AssetBundle,节省内存。
    			bundle.Unload(false);
    
    		} //由于使用using语法,www.Dispose将在加载完成后调用,释放内存
    	}
    }
    

      

    博主注:版本号可按天来,比如

    int version;

    version = DateTime.dayOfYears;

    http://baizihan.me/2016/03/unity-assetbundle03/

  • 相关阅读:
    启动 YARN 并运行 MapReduce 程序(伪分布式模式)
    启动 HDFS 并运行 MapReduce 程序(伪分布式模式)
    简单计算器(stack)
    Linux定时发邮件脚本
    HttpClient接口调用-客户端
    获取时间字符串
    Visual Assist代码高亮突然失效
    批量快速生成员工文件夹工具
    日语学习笔记整理(汉译日)
    有关使用PLSQL Developer时出现报错ora-12514解决的方法
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/6594404.html
Copyright © 2020-2023  润新知