热更新思路
public string url = "file://F:/testAsset/";//假装是远程服务器

void Awake(){
	StartCoroutine (Load());
}

IEnumerator Load(){
	
	using(WWW www = new WWW(url+"1.txt")){
		yield return www;
		//版本对不上,进行下载,不然加载本地
		using(WWW www2 = WWW.LoadFromCacheOrDownload(url+"1.assetbundle",Int32.Parse(www.text))){
			yield return www2;
			AssetBundle asset = www2.assetBundle;
			//获取图片,更改按钮的资源
			Sprite sprite = asset.LoadAsset<Sprite>("1");
			Image img = GameObject.Find ("Button").GetComponent<Image> ();
			img.sprite = sprite;

			//加载代码 运行lua代码
			TextAsset luaString = asset.LoadAsset<TextAsset> ("1Lua");
			LuaState lua = new LuaState ();
			lua.Start();
			LuaBinder.Bind (lua);
			lua.DoString (luaString.text);
			LuaFunction func = lua ["changButtonText"] as LuaFunction;
			Text txt = GameObject.Find ("Text").GetComponent<Text> ();
			func.BeginPCall ();
			func.Push (txt);
			func.PCall ();
			func.EndPCall ();

			func.Dispose ();
			lua.CheckTop ();
			lua.Dispose ();

			asset.Unload (false);
		}
	}
}


  1. 通过WWW加载一个文本文件,里面的内容表达的是资源的版本号

  2. 版本号不同时,去下载远程的assetbundle,相同时,下载本地的assetbundle

  3. assetbundle的资源中lua代码使用txt文件保存,使用TextAsset.string获取


首页 我的博客
粤ICP备17103704号