3. Welcome 窗口与示例
一次 Welcome 窗口导览、包含的六个示例,以及隐藏的框架测试套件。
3.1 自上而下逛一遍窗口
Welcome 窗口在每个包版本会在导入完成后自动打开一次。之后你随时可以从 Tools > Common Game System > Welcome 或 Window > Common Game System > Welcome 重新打开它。

Welcome 窗口及其自上而下标注的五个区域:演示、示例、快捷链接、环境检查,以及包含测试导入和 Service Debugger 按钮的底栏。
从上到下,窗口包含:
- Try the demo — 60 seconds。 一个 Open Demo Scene 按钮,用于加载 Motion Lab(第 2 章)。如果你跳过了演示,就从这里开始。
- Samples。 六行内容,每行一个示例,各配一个一键导入按钮。3.2 节会说明每个示例教什么。
- Quick links。 四个按钮:Manual (PDF) —— 即本文档;Documentation —— 你项目里的文档文件夹;Changelog —— 每个版本的变更;Module Reference —— 每个服务的参考页。
- “No code setup required” —— 一条说明,确认全部 23 个服务会在你的脚本运行之前自行注册;其后是一个默认折叠的 Environment checks 折叠区。展开它可以验证你的项目设置,例如哪些可选 Unity 包已安装。在默认项目中所有检查项都是绿色的,所以它默认是折叠的。
- 底栏。 三个控件:Import framework tests(见 3.4 节);Open Service Debugger —— 一个编辑器窗口,在你运行游戏时列出每个已注册服务及其当前实现;以及一个 “Don't show again” 开关,用于停止当前包版本的自动打开。
3.2 六个示例
示例是小而自成一体的教学项目。其中三个是可运行的:导入、打开场景、按下 Play 即可。另外三个是脚本模板:带注释的起步脚本,配有分步 README,用来阅读和改编,而不是用来游玩。
| 示例 | 类型 | 它教你什么 |
|---|---|---|
| UI Panel Stack Sample | 可运行 —— SampleScene.unity | 一条四面板的菜单链(Main Menu、Pause、Settings、Audio)外加一个确认对话框。展示面板的压入与弹出,以及手柄和键盘焦点如何跟随最上层面板。 |
| Save/Load + Seeded Random Sample | 可运行 —— SaveLoadDemo.unity | 用 30 秒回答“存档真的能用吗?”。一位英雄的属性经存档文件完整往返,带种子的随机数在读档后重现同样的掷点结果。 |
| Command Console Sample | 可运行 —— CommandConsole.unity | 一个基于命令注册表构建的、可用的游戏内开发者控制台:输入命令、按 Enter、浏览历史。可以把它作为你自己控制台的起点。 |
| Scene Flow Sample | 脚本模板 + 分步 README | 正确实现的异步场景加载:带进度条和取消功能的加载画面。README 会一步步教你把它接到你自己的场景上。 |
| Localization Sample | 脚本模板 | 一个支持实时切换语言的语言选择界面——无需重启。展示显示文本如何按键查找。 |
| RPG Starter Sample | 脚本模板 | 一个极简的 RPG 形态切片,多个服务在其中协作:一位小英雄同时用到存档、事件、随机掷点和定时器。这是纵观全局的最佳示例。 |

Welcome 窗口的 Samples 区域。高亮标记了一个导入按钮,以及显示该示例是可运行还是脚本模板的标签。
一条不错的入门路径:先玩 Save/Load + Seeded Random Sample,等你写完自己的第一批服务调用(第 4 章)之后,再阅读 RPG Starter Sample 的脚本。
3.3 示例文件落在哪里
导入示例会把它的文件复制到你项目中的这个位置:
Assets/Samples/Common Game System/<version>/<sample name>/
这些副本属于你。可以编辑、重命名,或者删除整个文件夹——原件仍留在包内,你随时可以从 Welcome 窗口重新导入一份全新副本。框架中没有任何东西引用这些导入的副本,所以删除它们绝不会弄坏任何东西。
3.4 框架测试(在你需要之前保持隐藏)
CGS 由 2,600+ 个自动化测试验证。它们随包一起发布,但处于隐藏状态——不会出现在你的 Project 窗口中,也不会给你的编译时间或构建增加任何负担。大多数用户永远用不到它们。
如果你想要证据,证明框架在你的机器和 Unity 版本上行为正常,点击 Welcome 窗口底栏的 Import framework tests。这会把测试套件复制到你的项目里。然后打开 Window > General > Test Runner,选择 EditMode 选项卡,点击 Run All。完整套件几分钟内跑完,应当以零失败结束。
**测试出现在哪里:**一键导入后,打开 Window > General > Test Runner 并选择 EditMode 选项卡。CGS 套件显示为
CommonGameSystem.Tests.EditMode.dll;点击 Run All,预期零失败。
为什么默认隐藏?测试是开发者工具,不是游戏内容。如果让它们可见地随包发布,你 Project 窗口里包的表观体积会翻倍,每次脚本编译也会变慢。将其隐藏、辅以一键选择加入,让你既能验证又不受杂乱之扰。与示例一样,导入的测试只是普通副本——用完随时删除。
下一章:4. 你的第一个脚本