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)的主要内容,如果未能解决你的问题,请参考以下文章

unity热更新AssetBundle框架设计_框架篇

unity实现按文件夹自动打包assetbundle

Unity 资源管理与AssetBundle详解

unity 怎么生成assetbundle

unity5本地文件assetbundle怎么加载

unity2018怎么打包assetbundle?