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);
}
}
}通过WWW加载一个文本文件,里面的内容表达的是资源的版本号
版本号不同时,去下载远程的assetbundle,相同时,下载本地的assetbundle
assetbundle的资源中lua代码使用txt文件保存,使用TextAsset.string获取