一、资源打包
1.资源打包分组
逻辑实体分组:一个UI界面(布局信息和贴图一个包),一个场景(所有场景共享部分一个包),一个角色(角色模型动画一个包)等等!
按照类型分组:所有声音一个包,所有模型一个包,所有材质一个包,所有shader一个包等等!
按照使用分组:某段时间里使用的资源打成一个包,频繁更新的资源打成一个包;也可以按照关卡打包,一个关卡里的所有声音,材质,贴图,模型打成一个包等等!
AB包命名:选择prefab后,可在inspector面板下方的assetBundle栏添加包名!
包名可以按照自己的分组策略添加,在这里我把共享部分单独打包!
我有两个prefab(Player,Plane)共享一个材质 mplayer
2.拓展编辑器,编写打包程序
unity API :
outputPath:资源输出文件夹路径;
BuildAssetBundleOptions: 资源打包方式;
BuildTarget: 资源打包的目标平台;
打包之后,会在对应目录下生成相应的AB包文件
其中ABResources(后面需要根据其加载依赖资源)是根目录AssetBundle对象,包含了所有ab包以及其依赖信息;然后每个ab包的manifest文件也包含了自己的依赖信息!
共享部分单独打包,也会使整个包体大小减小很多!
二、资源加载使用
在实例化对象之前,要把依赖资源加载好,不然就会丢失引用!
加载程序:
比如,这里共享的材质 mplayer就需要在实例化之前先加载,因为这个材质是单独打包的!
加载依赖后:
资源加载方式还有 :
异步本地文件夹读取;
(异步)缓存中读取;
(异步)流中读取;
异步加载方式配合协程,可以用来逐步加载资源,防止出现卡顿,或者等待时间过长!