游戏中的资源分析
本节内容主要是对游戏中的资源进行分析,以助于后续进行打包策略的确定。
Unity游戏开发中,我们主要使用的大概有以下几类资源。
1.代码资源
常见的代码类型有:c# python 和 lua。
2.游戏配置表
常见的游戏配置大概有 .txt .lua 本质都是文本文件
3.游戏场景资源
每个游戏场景
4.游戏预制件
.prefab比如模型、地形、建筑、UI,粒子特效大多数都是预制件实现
5.小图片
sprite
6.贴图
大图片或者shader使用的 Texture
7.音效片段
audioClip
8.动画片段
animationClip
9.shader
shader代码
10.animatorcontoller
大概类型就是有以上几种。
打包策略
1.最小包策略
顾名思义每个Asset打一个ab包。
2.按照功能模块进行细分打包
比如每个UI功能用到图集打到一块儿,这样就可以按照加载UI功能模块进行内存管理。每个功能的配置表打到一块儿。每个模型和其动画片段以及动画状态机打到一块儿。
3.按照资源类型进行打包
shader细分后打在一起,动画状态机打在一起,贴图打在一起,音效打在一起。
最小包策略是最无脑的,也是比较稳妥的,但是缺点是每次都会更新很多个文件,玩家看起来懵点。
如果一次性大量修改,可能导致下载速度较慢,卡在IO了,但是可以让玩家尽可能节约流量,能做到玩家流量也敢更新。
按照功能模块打包也是比较方便的,每次更新文件较少,玩家看起来开心点。能做到哪个模块更新就更新哪个模块的AB包,缺点就是很伤人脑,人来划分总会出点问题的,但是每个AB包大小可能较大,每次更新一次后,其实只是做了很小的更改,也会导致较大的AB包修改,玩家下起来头疼,需要把握好粗粒度。
按照资源类型进行打包在最小包和按照功能模块打包之间,比较均衡,比如多少个图集打成一个AB包,多少个贴图打成一个AB包,多少个动画状态机打成AB包,但是对于资源的管理就需要谨慎点,因为可能不同模块都需要使用同一块儿资源,不能随意卸载,但是更改的东西多了,下载的大小也会随之增加,所以这个也需要把握好粗粒度。