Unity进阶----AssetBundle_03(2018/11/07)
Posted future-better
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
压缩包对应关系:
更改路径位置:
以上是关于Unity进阶----AssetBundle_03(2018/11/07)的主要内容,如果未能解决你的问题,请参考以下文章