1.11 资源划分策略

1.核心打包原则

2.具体资源划分方案


1.资源划分策略

csharp 复制代码
控制包大小: "单个包尽量 ≤ 10MB, 太大加载卡, 太小(≤100KB)就合并"


a.一起用的放一起

同一时间/同一场景会用到的资源, 打包到一个包里(比如: 主城的UI和主城的特效)

b.常换的单独放

经常要更新的资源(比如: 活动图标), 单独打包, 修改的时候只更这个一个包, 不用动其他

c.太大的单独放

每个资源体积特别大(比如: 5MB以上), 单独打包, 避免加载时卡顿

2.具体资源划分方案

csharp 复制代码
1).UI资源(按钮, 弹窗, 图标等)

a.全游戏通用UI(比如: 按钮, 加载圈, 弹窗框架)

- 打包方式: 单独打包, 例如: ui_common.ab

- 通俗解释: 游戏全程都用, 加载一次就够, 不用重复打包
csharp 复制代码
b.场景/模块专属UI(比如: 主城/副本/商城UI)

- 打包方式: 按场景/模块打包, 例如: ui_city.ab

- 通俗解释: 进主城才加载主城UI, 不浪费内存
csharp 复制代码
c.活动UI(比如: 圣诞/春节活动)

- 打包方式: 单独打包, 例如: ui_activity_xmas.ab

- 通俗解释: 活动常改, 单独打包只更这一个包
csharp 复制代码
d.小图标(比如: 道具/技能图标)

- 打包方式: 所有小图标合并打包, 例如: ui_icons_common.ab

- 通俗解释: 小图标太多, 单个打包会有几百个小包, 加载慢

csharp 复制代码
2).特效资源(含buff特效)

a.通用特效(比如: 飘字/小火花/按钮高亮)

- 打包方式: 合并打包, 例如: effect_common.ab

- 通俗解释: 全游戏都用, 一次加载全局通用
csharp 复制代码
b.通用buff(比如: 回血/暴击/减速buff)

- 打包方式: 合并打包, 例如: effect_buff_common.ab

- 通俗解释: 所有基础buff放一起, 战斗时一次加载
csharp 复制代码
c.场景/职业专属特效(比如: 副本1战斗特效, 法师技能特效)

- 打包方式: 按场景/职业打包, 例如: effect_dungeon1.ab, effect_skill_mage.ab

- 通俗解释: 进副本1才加载副本1的特效, 法师出战才加载法师技能特效
csharp 复制代码
d.超大特效(比如: Boss终极大招)

- 打包方式: 单独打包, 例如: effect_boss_ultimate.ab

- 通俗解释: 体积大, 只在Boss战用, 用完就卸载, 不占内存
csharp 复制代码
e.活动专属特效(比如: 圣诞大招)

- 打包方式: 单独打包, 例如: effect_activity_xmas.ab

- 通俗解释: 活动结束就换, 单独打包方便更新

csharp 复制代码
3).模型资源(角色/小怪/建筑)

a.通用模型(比如: 宝箱/石头)

- 打包方式: 单独打包, 例如: model_common.ab

- 通俗解释: 全游戏共用, 避免重复打包, 占体积
csharp 复制代码
b.场景专属模型(比如: 主城建筑/副本小怪)

- 打包方式: 按场景打包, 例如: model_city.ab  

- 通俗解释: 进主城加载主城建筑, 不加载副本的模型
csharp 复制代码
c.角色模型(比如: 战士/法师)

- 打包方式: 按职业打包, 例如: model_role_warrior.ab

- 通俗解释: 选战士职业才加载战士模型, 节省内存
csharp 复制代码
d.超大模型(比如: Boss模型)

- 打包方式: 单独打包, 例如: model_boss_dragon.ab

- 通俗解释: 体积 >= 5MB, 单独加载不卡

csharp 复制代码
4).音频资源(音效/BGM/语音)

a.通用特效(比如: 按钮点击/普攻)

- 打包方式: 合并打包, 例如: audio_sound_common.ab

- 通俗解释: 小音效合并, 减少小包数量
csharp 复制代码
b.场景BGM(比如: 主城/副本BGM)

- 打包方式: 按场景打包, 例如: audio_bgm_city.ab

- 通俗解释: 进主城播主城BGM, 加载对应包即可
csharp 复制代码
c.超大音频(剧情长语言)

- 打包方式: 单独打包, 例如: audio_voice_story_final.ab

- 通俗解释: 时长 >= 1分, 单独加载不卡

csharp 复制代码
5).场景资源(比如: 整个关卡/地图)

a.每个场景/关卡单独打包, 例如: scene_city.ab, scene_dungeon1.ab

b.原因: "加载关卡时要整体加载, 单独打包方便卸载(退出关卡就删场景包, 释放内存)"

csharp 复制代码
6).通用依赖资源(所有资源都会用到的东西)

a.单独打包, 例如: common_shader.ac (shader, 通用材质, 字体)

b.关键: 别将这些东西跟着特效/模型打包, 比如所有特效都用一个shader, 单独打包后, 所有特效只需要"引用"它即可
相关推荐
weixin_424294675 小时前
对于未加入 Script Execution Order 的脚本
unity
暴走约伯5 小时前
【VFX工具链源码拆解 03】告别机械劳动(下):材质字典映射批处理与智能纹理槽识别
unity·游戏引擎·材质
Wanda12145 小时前
机器人与机电一体化3D数字孪生机器-Day9
人工智能·3d·unity·机器人·数字孪生
暴走约伯6 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
平行云1 天前
建筑BIM/3D可视化轻量级实时评审与分享方案
unity·ue5·3dsmax·实时云渲染·云桌面·云游戏·建筑bim
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
FFFFujige2 天前
【Unity】一个的Dots用Ruhanka踩坑记录
unity·游戏引擎
凯基迪科技3 天前
Unity游戏加密锁逆向方案、选型与攻防分析
游戏·unity·游戏引擎
阿松爱学习3 天前
【Unity开发】局部区域截图功能实现
unity·c#
淡海水3 天前
08-02-优化-LINQ与函数式编程的GC代价
unity·c#·.netcore·linq·gc