Unity热更新之AssetBundle——AB包资源打包

1、在package Manager里面下载Asset Bundle Brower 安装完成后,在packages下可以看到Asset Bundle Br

在这里插入图片描述

1、在package Manager里面下载Asset Bundle Brower

在这里插入图片描述安装完成后,在packages下可以看到Asset Bundle Brower
在这里插入图片描述点击windows列表下的Asset Bundle Brower唤出

在这里插入图片描述

2、让资源跟AB包关联,并且能够打包出来

选择想要打包的资源
在这里插入图片描述
点下面的New
在这里插入图片描述
取一个包名
在这里插入图片描述这时候再点我们的windows列表下的Asset Bundle Brower,就可以看到东西传进去了
在这里插入图片描述
unity里面的C#脚本是无法打包到AB包的,因此要用Lua进行热更新
因为C#是编译解释型语言,需要经过编译才能被最终执行(C#先把源代码编译成中间码,再解释执行中间码,既有编译又有解释的过程。所以说C#是编译型还是解释型语言,都是不够准确的。)
那我们那些预制体上的脚本资源呢
因为像下面这些Transform\Mesh\Collider等这些组件其实都是脚本
在这里插入图片描述
那打包会不会把这些脚本打包进去?
其实,我们预制体上的这些组件,看起来像我们的组件
其本质是利用反射做的
这里记录的只是一堆数据而已
我们打包到AB包内的不是这些代码本身
而是这些预制体关联了那些C#代码
这是我们打开的其中一个预制体
在这里插入图片描述
可以看到他们其实是一堆文件信息
其关联的脚本都有一个ID
在这里插入图片描述
所以它不是把脚本放到AB包里,而是把关联的脚本信息放进AB包里

然后,我们看第二个页键 Build
在这里插入图片描述

  • Build Target 构建平台
    每一次AB包打包需要指定平台
    不同平台需要重新打包才行
    在这里插入图片描述

  • OutputPath 输出路径

  • Clear Folders 是否清空文件夹(导入前把输出文件夹清空)一般勾选

  • Copy to StreamingAssets 一般勾选
    是否复制一份到StreamingAsset文件夹
    关于StreamingAsset文件夹:https://blog.csdn.net/qq_31967569/article/details/82851367
    在这里插入图片描述

  • Advanced Settings 高级设置

  • Compression
    压缩方式,一般选LZ4
    因为它是用什么解压什么,不会把所有资源都解压出来(因此其内存占用比较低)

最后我们点击Build
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
inspect 主要用来观测我们包的一些信息的
在这里插入图片描述
在这里插入图片描述上面单词太长,就用简称表示

  • ET 一般不用
  • FR 重新打包时需要重新构建包
    和ClearFolders不同,它不会删除不再存在的包(比如下图中我把head删掉了,它build的时候还是会把它加进去,所以我们一般推荐使用ClearFolders)
    在这里插入图片描述在这里插入图片描述