项目结构
GES · Introduction
正确放置插件代码、事件数据、生成代码与 Demo 资源,让版本控制和后续升级保持安全
面向需要配置版本控制、规划升级或精简 GES 项目构建体积的开发者插件文件位于 Assets/TinyGiants/GameEventSystem,项目事件数据默认放在 Assets/TinyGiantsData/GameEventSystem,升级插件时保留项目数据库、流程图、生成脚本及其 .meta 文件
目录树
下面是标准的层次结构
每个图标标示对应文件夹的性质:
- 🛡️ 不可变核心: 永远不要修改、移动或重命名
- 💾 可变数据: 您的项目数据,可以安全提交,可以安全修改
- 🗑️ 可丢弃: 可以安全删除以进行优化
Assets/
└── 📁 TinyGiants/ # [项目根目录] 所有内容均包含在此目录下
└── 📁 GameEventSystem/ # [插件根目录] 插件根目录
├── 📁 API/ # 🛡️ 接口与公共API
├── 📁 Data/ # [用户数据] 您生成的内容保护区
│ ├── 📁 CodeGen/ # 💾 自动生成的C#类
│ │ ├── 📁 Events/ # 💾 事件类
│ │ │ └── 📁 Basic/ # 🛡️ 基础类型(必需)
│ │ └── 📁 Components/ # 💾 桥接组件(Raiser / Receiver)
│ │ └── 📁 Basic/ # 🛡️ 基础类型(必需)
│ ├── 📁 Database/ # 💾 您的事件数据库资产(.asset)
│ └── 📁 FlowGraph/ # 💾 您的可视化流程图(.asset)
├── 📁 Demo/ # 🗑️ 示例场景与资产(可以安全删除)
├── 📁 Editor/ # 🛡️ 自定义Inspector与窗口逻辑
│ └── 📁 Icons/ # 🗑️ UI纹理(删除可减少<1.2MB的构建体积)
├── 📁 Runtime/ # 🛡️ 核心引擎与事件类型
├── 📄 Changelog.txt
├── 📄 LICENSE.txt
└── 📄 Readme.txt
架构说明
Game Event System 包含核心逻辑——不可变的插件代码(锤子) GameEventSystem/Data 包含您用它构建的内容——自定义事件类、桥接组件、数据库和流程图(房子)
关键: "Plugins"文件夹警告
不要移动到"PLUGINS"
您 绝对不能 将TinyGiants文件夹移动到标准的Assets/Plugins/目录中
为什么这很关键?
- 编译顺序(脚本阶段):
Unity在编译您的标准游戏脚本(Assembly-CSharp)之前编译Plugins文件夹
- 我们的插件需要引用您的自定义类(例如PlayerStats、InventoryItem)来为它们生成事件
- 如果插件位于Plugins中,它无法看到您的游戏代码,会导致"找不到类型"错误
- 相对路径依赖: 自动化代码生成器和数据库管理器依赖于特定的相对路径来定位资产,破坏此结构可能导致"Hub"无法追踪您的数据库
- 资产保护机制: 插件包含后台AssetProtector服务,如果检测到这些文件夹被移动到Plugins,它会尝试警告您或阻止该操作以防止项目损坏
版本控制(Git/SVN)策略
对于使用源代码管理的团队,以下是推荐的配置:
| 文件夹路径 | 策略 | 原因 |
|---|---|---|
| TinyGiants/ | 提交 | 包含项目运行所需的核心插件代码 |
| .../Data/Database | 提交 | 包含您的实际事件资产,关键数据 |
| .../Data/FlowGraph | 提交 | 包含您的可视化逻辑图表,关键数据 |
| .../Data/CodeGen | 提交 | 推荐, 虽然这些可以重新生成,但提交它们可以确保项目立即为其他团队成员编译,而无需先运行向导 |
控制随 Player 构建的内容
在 Build Settings 中选择游戏自己的场景,从项目移除 Demo 前,先检查游戏场景、Prefab、数据库和脚本是否仍有演示资产引用,项目不再使用的生成类型可以通过清理工具删除