跳到主要内容

Demo 资源布局

Guide

按所属卡牌、单位、状态、意图、卡组或遭遇战定位 Demo 资源,并用同一规则组织项目表现资源

根目录

📦 Demo/Content/ # 随包提供的表现资源,按拥有对象分组
├── 🎨 Art/ # 只存放跨对象共享资源
├── 🃏 Cards/ # 卡牌家族卡框、Prefab 与单卡原画
├── 🗂️ Decks/ # 各职业初始卡组与奖励卡组的封面图标
├── 🌄 Encounters/ # 职业背景、视差图层与遭遇战 UI
├── 🎯 Intents/ # 敌人意图图标及其显示组件
├── ✨ Statuses/ # 状态图标、状态组件与状态专用 VFX
└── 🧙 Units/ # 玩家、敌人美术、Prefab 与单位共享组件

Cards

🃏 Content/Cards/ # 五个卡牌家族及其共用的发光贴图
├── ⚔️ Basic/ # Basic 家族的卡框、Prefab 与卡牌原画
│ ├── 🖼️ Artwork/ # Strike、Defend 等 Basic 卡牌的原画
│ ├── 🎨 Basic.png # Basic 卡框贴图
│ └── 🧩 Basic.prefab # Basic 卡牌视图 Prefab
├── 💥 Burst/ # Burst 家族的卡框、Prefab 与原画
├── 🕯️ Curse/ # Curse 家族的卡框、Prefab 与原画
├── 🛠️ Skill/ # Skill 家族的卡框、Prefab 与原画
├── 🤝 Support/ # Support 家族的卡框、Prefab 与原画
└── ✨ CardGlow.png # 所有卡牌家族共用的发光贴图

五个文件夹分别对应五个卡牌模板家族,每个家族拥有自己的卡框贴图、卡牌 Prefab 与 Artwork/,后者保存使用该卡框的单卡原画,所有模板共用的 CardGlow.png 则位于 Cards/ 根目录

提示

如果某张卡以后有了专属的 VFX、音频或动画,建议将这些资源放到使用它们的卡牌家族之下,建立 VFX/Audio/Animation/ 子文件夹,避免使用 Content/VFX/Cards/ 这种按资源类型聚合的顶层目录

Units

🧙 Content/Units/ # 单位自有美术、Prefab 与单位级共享资源
├── 👹 Enemy/ # 先按职业、再按具体敌人组织
│ ├── 🏹 Enemy_Hunter/ # Hunter 敌人阵容
│ │ ├── 🐍 Enemy_PlagueStalker_Normal/ # Normal 敌人的美术与 Prefab
│ │ ├── 🍄 Enemy_SporeBrute_Elite/ # Elite 敌人的美术与 Prefab
│ │ ├── 💀 Enemy_MireReaper_Boss/ # Boss 的美术与 Prefab
│ │ └── 🌱 Enemy_BogPolyp_Summon/ # 召唤单位的美术与 Prefab
│ ├── 🪄 Enemy_Mage/ # Mage 敌人,每个单位使用带级别后缀的独立目录
│ ├── ✨ Enemy_Priest/ # Priest 敌人,每个单位使用带级别后缀的独立目录
│ └── ⚔️ Enemy_Warrior/ # Warrior 敌人,每个单位使用带级别后缀的独立目录
├── 🦸 Player/ # 按职业分组的玩家单位资源
│ ├── 🏹 Hunter/ # 头像、全身立绘与玩家 Prefab
│ ├── 🪄 Mage/ # 头像、全身立绘与玩家 Prefab
│ ├── ✨ Priest/ # 头像、全身立绘与玩家 Prefab
│ ├── ⚔️ Warrior/ # 头像、全身立绘与玩家 Prefab
│ └── 🌟 Shine.png # 玩家单位共用的高亮贴图
├── 🧩 Prefabs/ # HpWidget.prefab 等单位级共享组件
└── 🌑 Shadow.png # 所有单位共用的地面阴影

每个敌人在所属职业目录中使用独立的 Enemy_<Name>_<Tier> 文件夹,美术与 Prefab 保存在同一位置,玩家资源则按职业保存头像、全身立绘与单位 Prefab,HP 条等多个单位共用的组件进入 Units/Prefabs/

Encounters

🌄 Content/Encounters/ # 各遭遇战职业拥有的表现资源
├── 🏹 Hunter/ # Hunter 遭遇战表现资源
│ ├── 🖼️ Background.png # 铺满画面的职业背景
│ ├── 🏞️ Layer/ # 前景与背景视差图层
│ └── 🧭 UI/ # Hunter 专用遭遇战 UI 美术
├── 🪄 Mage/ # Mage 背景、视差图层与 UI 美术
├── ✨ Priest/ # Priest 背景、视差图层与 UI 美术
└── ⚔️ Warrior/ # Warrior 背景、视差图层与 UI 美术

遭遇战背景和视差图层归职业文件夹所有,场景文件本身不算内容,它们在 Demo/Scenes/<Class>/

Statuses 和 Intents

✨ Content/Statuses/ # 状态自有图标、组件与表现特效
├── 🧩 Prefabs/ # StatusWidget.prefab 与 StatusIconEntry.prefab
├── 💫 VFX/ # 25 个状态施加与到期特效 Prefab
└── 🖼️ Status_<Name>.png # 在 Game Card Editor 中选择的 30 个状态图标

🎯 Content/Intents/ # 用于预告敌人行动的资源
├── 🧩 Prefabs/ # IntentWidget.prefab 与 IntentEntry.prefab
└── 🖼️ Intent_<Kind>.png # 从 Attack 到 Unknown 的 8 个意图图标

每个状态定义都通过 Game Card Editor 的 Status 模式在 Icon 字段中引用图标,状态专属特效保存在 Statuses/VFX/,并由状态 FlowGraph 中的 Status Apply FXStatus Expire FX 节点配置施加和到期表现,意图图标对应敌人头顶预告的行动类型,两个 Prefabs/ 文件夹分别保存 Demo UI 使用的状态与意图组件

将共享资源放入 Art

Content/Art/ 只保留被多个对象共享的资源

🎨 Content/Art/ # 被多个拥有对象共同使用的表现基础资源
├── 🔊 Audio/ # Mixer、BGM、环境音、玩法音效、UI、结算与敌人语音
├── 🔤 Fonts/ # 运行时字体与 TextMesh Pro 字体资产
├── 🧪 Materials/ # 共享 UI、环境与 VFX 材质
├── 🧩 Prefabs/ # 跨对象组件与可复用表现 Prefab
├── 📦 Resources/ # 通过 Unity Resources 加载的 TinyGiants 资产
├── 🧬 Shaders/ # 共享 UI、Sprite、环境与粒子 Shader
├── 🖼️ Sprites/ # 共享光标、UI 与 VFX 贴图
└── 💥 VFX/ # 共享战斗特效与职业环境特效 Prefab

音频树展示了共享资源的典型边界,Mixer、BGM、环境音、通用卡牌音效、战斗打击、意图预告、状态音效、过场音乐、UI 与敌人语音可以由多场战斗共同使用,而某个卡牌家族专属的音效则应保存在对应家族目录

注意

对象专属资源应直接放入所属对象的目录,Art/ 只存放跨对象共享资源,先确定归属再保存文件,可以避免后续移动资源时修改多个无关对象的引用

音频、VFX 与动画的存放规则

制作阶段产出最终表现资源时,按照归属选择目录

资源属于放到
一个卡牌家族Content/Cards/<Family>/VFX/(或 Audio/Animation/
一个敌人它自己的 Content/Units/Enemy/Enemy_<Class>/Enemy_<Name>_<Tier>/ 文件夹
一个玩家职业Content/Units/Player/<Class>/VFX/(或 Audio/Animation/
一个遭遇战职业Content/Encounters/<Class>/VFX/(或 Audio/Animation/
多个无关对象Content/Art/VFX/(或 Audio/Animations/

对象内的子文件夹按需创建,第一份对应资源出现时再增加目录,不必为每个卡牌家族预先创建空的 Audio/

在项目中应用同一规则

Demo 内容固定使用这套布局,项目自有资源也可以按以下顺序采用同一归属规则:

  1. 导入资源前先确定它属于哪个对象
  2. 把资源放进该对象的文件夹,需要时新建子文件夹
  3. 只有资源确实没有单一所属对象时,才使用共享文件夹
  4. 数据库和表现资源分开存放
  5. Demo 内容和正式项目内容使用不同的根目录,移除 Demo 时不会影响项目资产