内容布局参考
GCS 项目的推荐目录树:每个资源都住在拥有它的卡牌、单位、状态或遭遇战旁边。
正在搭项目目录结构,或在想一个新 VFX prefab 该放哪的人。GCS 内容按 ownership 组织。一个资源属于某张卡、某个单位、某个状态、某个意图或某场遭遇战,就放在这个拥有者旁边。共享文件夹存在,但只收服务多个拥有者的资源
核心规则
Owns the thing -> owns the assets for the thing.
这让创作工作保持在局部。设计师编辑一张卡时,它的美术、特效和音效都在同一个文件夹里,而不是去三个全局桶里翻那些恰好共享一个前缀的文件
推荐根目录
YourGame/GCS/
|-- Databases/
|-- Content/
| |-- Art/
| |-- Cards/
| |-- Decks/
| |-- Encounters/
| |-- Intents/
| |-- Statuses/
| `-- Units/
`-- Scenes/
根目录的名字和位置随你定,重要的是 ownership 规则。GCS demo 就是按这个结构组织的,填好内容的实例见 demo 资源布局
把资源挪到更合适的文件夹时,数据库和遭遇战的引用会跟着走。GCS 不依赖任何路径,已有项目可以随时逐步迁到这套布局
Cards
Content/Cards/<Type>/
|-- Artwork/
|-- VFX/
|-- Audio/
|-- Animation/
`-- <card assets>
当你的游戏给卡牌类型赋予视觉身份(共享边框、辉光颜色、音效族)时按类型切分。只有当某张单卡拥有足够多专属资源时才给它单独开文件夹。VFX/、Audio/、Animation/ 子文件夹在实际产出这类资源时再建,不必预先创建。整个卡牌家族共享的资源(辉光 sprite、稀有度边框)放在 Cards/ 根下
Units
Content/Units/
|-- Player/<Class>/
|-- Enemy/<Class>/
`-- Prefabs/
单位的美术、动画、音频和特效放在拥有它们的玩家或敌人职业下。Units/Prefabs/ 只放所有单位共享的组件,例如 HP 条和状态列表
Encounters
Content/Encounters/<Class or Region>/
|-- Backgrounds/
|-- Audio/
|-- VFX/
`-- Presentation/
背景和环境音属于各自的遭遇战。只有当许多互不相关的遭遇战复用同一个文件时,才把它提升到共享文件夹
Statuses 与 Intents
Content/Statuses/
|-- Prefabs/
`-- Icons/
Content/Intents/
|-- Prefabs/
`-- Icons/
状态图标属于状态,意图图标属于意图。两个 Prefabs/ 文件夹放渲染它们的共享组件,例如状态图标条目和意图组件。状态有了专属视觉效果时,同一套 ownership 逻辑照用:某个状态的专属 VFX prefab 放在 Statuses/ 下,挨着它所属的状态
共享美术
Content/Art/ 只收没有单一拥有者的资源:
- 字体
- 共享 UI sprite
- 共享 shader 和材质
- 共享战斗特效
- 全局 audio mixer 资源
- 可复用的 animation controller
判断很简单:说出拥有者。说得出(“这是 Poison Arrow 的命中特效”),资源就该进那个拥有者的文件夹,不进 Art/
避免按类型分桶
不要在内容根目录下建只按类型分的文件夹:
Content/Prefabs/
Content/Audio/
Content/VFX/
Content/Animations/
它们第一天看着整齐。六个月后,看懂一个敌人要跑四个相距甚远的文件夹,删一张被砍掉的卡会在其中三个里留下孤儿文件。ownership 文件夹更耐老化,因为内容是按对象生长、按对象消亡的