1. 程式人生 > >Unity進階----AssetBundle_03(2018/11/07)

Unity進階----AssetBundle_03(2018/11/07)

1. 為啥有AB包? 因為資源需要更新, 避免更新一次打包一次 動態修改.

2. AB包注意啥? 依賴關係 找依賴關係應該找到對應的平臺!!! 

3. 打包策略是分場景打包 若檔案被資料夾包含打包出來的就是資料夾的名字 否則是場景資料夾名稱

4. 當我AB包從硬碟載入完成之後 是不是就該載入到記憶體 並例項化了? 帶有快取的ab載入機制

5.指令碼不允許出現在打包目錄的 dll

6.知道載入的過程 說出來! 這個很重要(依賴載入必須會). 知道框架的基本作用 以後會拿出來用或修改 

7. Lua: Lua語言和其他指令碼語言有一致特性 Python C很大的淵源 

8.操作步驟:

a. 指定場景

b. 指定abname

c.指定objinabname

d. 協同

e. 委託 void string

f.在委託裡面進行物體的例項化操作

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using UnityEngine.SceneManagement;
 5 using LLWHABFW;//引用框架
 6 
 7 public class Scene03Boll : MonoBehaviour {
8 9 private string _abScene = "scenes03"; 10 //壓縮場景的名字---------------------------------->"a" 11 private string _abName = "scenes03/scenes03.ab"; 12 //壓縮場景中物體的名字----------------->"b" 13 private string _obj01InAB = "Plane.prefab"; 14 //在scenes03.ab中預製體Plane的名字---------->"c" 15 private string
_obj02InAB = "Sphere.prefab"; 16 //在scenes03.ab中預製體Sphere的名字-------->"c" 17 private List<GameObject> _mylist; 18 void Start() 19 { 20 _mylist = new List<GameObject>(); StartCoroutine(AssetBundleMgr.GetInstance().LoadAssetBundlePack(_abScene, _abName, heheda)); 21 //解壓所需物體及其依賴-------------------------------------->"d"(引數最後一個為"e") 22 } 23 24 void Update () 25 { 26 if (Input.GetKeyDown(KeyCode.Space)) 27 { 28 for (int i=0;i<_mylist.Count;i++) 29 { 30 Destroy(_mylist[i]); 31 } 32 _mylist.Clear(); 33 34 AssetBundleMgr.GetInstance().DisposeAllAssets(_abScene); 35 ABManifestLoader.GetInstance().Dispose(); 36 37 StartCoroutine("ssss"); 38 } 39 } 40 private void heheda(string yu) 41 //例項化------------------------------------------------>"f" 42 { 43 GameObject plan, boll; 44 plan = AssetBundleMgr.GetInstance().LoadAsset(_abScene, _abName, _obj01InAB, false) as GameObject; 45 boll = AssetBundleMgr.GetInstance().LoadAsset(_abScene, _abName, _obj02InAB, false) as GameObject; 46 _mylist.Add( Instantiate(plan)); 47 _mylist.Add(Instantiate(boll)); 48 } 49 IEnumerator ssss() 50 { 51 yield return new WaitForSeconds(3); 52 SceneManager.LoadScene("1"); 53 } 54 }

 

 


壓縮包對應關係:

 

 

 

更改路徑位置: