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, 单独打包后, 所有特效只需要"引用"它即可
相关推荐
红黑色的圣西罗5 小时前
Unity减少Draw和SetPassCall的手段简述
unity·游戏引擎
淡海水6 小时前
【节点】[CorneaRefraction节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·cornea·refraction
小贺儿开发6 小时前
《唐朝诡事录之西行》——降魔变
科技·unity·人机交互·创意·文旅·hdrp
泡泡茶壶ᐇ7 小时前
Unity游戏开发入门指南:从零开始理解游戏引擎核心概念(二:Unity游戏开发的本质:从可视化编程到面向对象的顿悟)
unity·游戏引擎
小贺儿开发7 小时前
Unity3D 汽车视界(轻量版)
科技·unity·汽车·人机交互·可视化·urp
在路上看风景1 天前
32. 代码优化
unity
在路上看风景1 天前
01. 编辑器外观
unity
CreasyChan1 天前
unity C# 实现屏蔽敏感词
unity·c#·游戏引擎
玉梅小洋1 天前
Unity 2D游戏开发 Ruby‘s Adventure 2:主角和第一脚本
游戏·unity·游戏引擎·游戏程序·ruby·游戏开发