一.什么是AssetBundle?
AssetBundle是Unity在编辑器环境下(enit-time)创建的一系列文件,这些文件可以被用在项目运行环境中(run-time),可以在运行中实例化,并且可以使用UnityWebRequest来传输.AssetBundle可以使用流(stream)和异步(Async)的方式加载.
AssetBundles 可以预缓存(pre-cached)和存储在本地,这样在运行时就可以立即加载它们.但是 AssetBundles 技术的主要的目的是在需要的时候能够从远端的服务器上按需请求特定的资源,并加载到游戏中.
AssetBundle在不同的平台下是不兼容的(例如iOS与安卓是兼容的).
二.AssetBundle可以打包哪些资源?
AssetBundle可以打包的资源类型包括模型文件(models),材质(materials),纹理(texture),场景(scenes),声音(audios)等.AssetBundles 可以包含 Unity 可以识别的任何类型的资源,包括自定义的二进制数据.
但是,脚本(Scripts)资源是不能打包的.
三.AssetBundle 和 Reousrces 的区别是什么?
Resources与AssetBundle都是资源的组织形式.
Resources可以在编辑器环境中方便的编辑与预览,Resources中包含着完整的依赖关系,会导致共同的依赖项重复,增大资源包的大小.
Resources资源使用Resources.Load()的方式来加载.但是Resources无法热更新.
AssetBundle是一种使用LZMA压缩方式压缩的资源文件.AssetBundle打包的时候,你可以指定一个mainAsset,那么加载完之后就可以通过AssetBundle.mainAsset来获取到了.你也可以不指定mainAsset,直接打包一堆内容进去,然后加载后通过AssetBundle.LoadAsset指定名字的读取出来.
参考链接 : https://www.cnblogs.com/lancidie/p/5878789.html