AssetBundle是unity提供的一种用于资源热更新的打包工具,AssetBundle可以用于打包模型文件,材质,贴图,场景等除了脚本之外的其他素材,并且提供了相应的打包和解包方式.
AssetBundle更新的时候会将模型所包含的材质,贴图,动画全部打包,热更新的时候模型身上的脚本下载到本地客户端是不会运行的,但是如果本地有一个脚本跟模型身上的脚本是一致的话则会很好的匹配上去.
热更新流程:
(1)将需要热更新的文件设置打包标识符,最后打包到StreamingAssets文件夹中,在拷贝一份给服务器
(2)应用第一次启动的时候,将StreamingAssets下的AssetBundle包拷贝到沙盒当中,场景根据沙盒当中的AssetBundle包进行场景加载(沙盒是客户端中唯一可读可写的文件)
(3)应用以后每次启动都会发送请求到服务器请求当前AssetBundle包的版本号,获取到版本号之后与本地配置表当中的版本号进行对比. 如果版本号不一致则开始下载服务器的AssetBundle包到沙盒路径当中替换掉原来的包.
AssetBundle打包之后除了有包本身还有对应的manifest文件,manifest文件是该包对应的清单文件,记录包的信息,比如报名,该包的依赖项.
加载本地或远程AB包方式一致,都使用以下该方法:
url:包的路径
version:版本号
WWW.LoadFromCacheOrDownload(url,version);使用该方法去加载会先到缓存cache当中去加载,如果cache 当中没有则去文件所在路径加载。
多个场景打包技巧:先将多个场景搭建好,再取出每一个场景中用到的公共资源,将公共资源重现打包,为每一个场景提供一个csv文件(配置表),该配置表记录了这一个场景需要到公共资源包当中获取那些资源,以及这些资源在这个场景的坐标,旋转,缩放。
网友评论