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获取