AssetBundle的定义
1. 它是一个存在于硬盘或网络上的文件,可以称之为压缩包,这个压缩包可以认为是一个文件夹,里面包含了多个文件,这些文件可以 分为两类:serialized file 和 resource files。(序列化文件和源文件)
serialized file:资源被打碎都放在一个对象中,最后统一被写进一个单独的文件。(Prefab、模型这些只有在Unity游戏场景中 才能看到是什么样子的资源可作为序列化文件)
resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载。(电脑上可以直接读取的图片、声音,一个声音 或图片都打包成一个单独的resources)
2. 它是一个AssetBundle 对象,可以通过代码从一个特定的压缩包加载出来这个对象并进行使用,对象包含了所有我们添加到压 缩包里的内容。
图文解析:
AssetBundle作用
1. AssetBundle 是一个压缩包(可能是压缩包,也可能不是,先暂时这样理解)包里面包含模型、贴图、预制体、声音、甚至整个场景等资源,AssetBundle包可减少 安装包的大小,玩家可以在游戏运行需要这些资源的时候被加载,,制作AssetBundle的过程相当于把这些资源打成一个包的过程;
2. AssetBundle自身保存着互相的依赖关系:比如说一个包是保存模型的,另一个包是保存贴图的,因为模型可能依赖于贴图则导致模型的包依赖于贴图的包。AssetBundle自身会保存这个依赖关系。
3 . 压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输。(具体的两个算法后期有空会补上)
为什么用压缩包,为了方便校验文件的完整性。
另外 AssetBundle内部不能包含C#脚本文件,
AssetBundle可以配合Lua实现资源和游戏 逻辑代码的更新