第1章 Unity 5 简介
按李在贤《Unity 5权威讲解》正式目录第 1-34 页复现第1章 Unity 5 简介,围绕 TPS 项目建立可运行、可反证、可回归的证据。
问题:怎样证明掌握的是原书项目,而不是背过一组 Unity API?
先预测:如果只保存最后一张运行截图,不知道对象如何生成、状态怎样变化、事件由谁发送、失败时如何清理,能否证明系统正确?不能。项目能力来自连续因果链,API 名称只是其中一个实现节点。
从引擎定位、版本优势、安装许可和编辑器界面建立后续 TPS 项目的统一工作环境。 本页同时保留 Unity 5 的历史语境和当前工程警示:已废弃的内置网络等 API 用于忠实理解原书,不作为新项目的生产推荐。
原书目录边界
本页严格对应《Unity 5权威讲解》第 1-34 页。以下目录项必须在实现、实验或证据中出现:
- Unity 3D 游戏引擎的诞生
- Unity 5 的优势
- 支持多平台
- 集成开发环境
- 所有功能免费
- 中间件内建
- 开放社区
- 资源商店
- 使用 Unity 制作的游戏
- 下载 Unity
- 安装 Unity
- 选择 Unity 许可
- 注册并登录 Unity
- Unity 界面
- 视图
- 工具栏
- 设置快捷键
本站以中文重新组织解释、代码与实验,不逐字复制原文。示例锁定原书 Unity 5 语境;迁移到现代 Unity 时,需要把输入、渲染、导航和网络替代方案写进版本清单。
核心模型与不可变条件
从引擎定位、版本优势、安装许可和编辑器界面建立后续 TPS 项目的统一工作环境。 主链为:引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景。每一节点只消费前一节点已经验证的对象、状态或事件,不能从最终表现反推中间过程一定正确。
本页不可变条件是:所有界面和安装步骤都必须落到可复现项目、明确 Unity 版本与可验证的场景编辑结果。 任何“看起来能跑”的结果都必须经过重复加载、异常输入和边界时序检验。
五个必须落到证据的术语
“游戏引擎”必须落到“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“集成环境”必须落到“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“资源商店”必须落到“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“场景视图”必须落到“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“游戏视图”必须落到“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
原书概念逐项复现
1. Unity 3D 游戏引擎的诞生
把“Unity 3D 游戏引擎的诞生”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
2. Unity 5 的优势
把“Unity 5 的优势”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
3. 支持多平台
把“支持多平台”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
4. 集成开发环境
把“集成开发环境”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
5. 所有功能免费
把“所有功能免费”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
6. 中间件内建
把“中间件内建”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
7. 开放社区
把“开放社区”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
8. 资源商店
把“资源商店”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
9. 使用 Unity 制作的游戏
把“使用 Unity 制作的游戏”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
10. 下载 Unity
把“下载 Unity”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
11. 安装 Unity
把“安装 Unity”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
12. 选择 Unity 许可
把“选择 Unity 许可”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
13. 注册并登录 Unity
把“注册并登录 Unity”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
14. Unity 界面
把“Unity 界面”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
15. 视图
把“视图”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
16. 工具栏
把“工具栏”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
17. 设置快捷键
把“设置快捷键”放回“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
三步复现与分步观察
可执行实现骨架
脚本边界显式保存状态,避免展示层直接决定玩法结果:
using UnityEngine;
public sealed class ChapterController : MonoBehaviour
{
[SerializeField] GameObject target;
bool completed;
public void ExecuteOnce()
{
if (completed || target == null) return;
completed = true;
ApplyChapterResult(target);
}
}测试记录必须能回到具体对象与事件:
{
"chapter": "u5-01-unity5-introduction",
"bookPages": "1-34",
"chain": ["引擎定位","版本能力","安装许可","项目创建","编辑器视图","可运行场景"],
"unity": "5.x-pinned",
"scene": "fixed-tps-checkpoint",
"normal": true,
"boundary": true,
"failureReplay": true
}签发输出同时保留通过值与拒绝原因:
PASS context=version+scene+prefab+input
PASS chain=引擎定位 -> 版本能力 -> 安装许可 -> 项目创建 -> 编辑器视图 -> 可运行场景
PASS invariant=所有界面和安装步骤都必须落到可复现项目、明确 Unity 版本与可验证的场景编辑结果。
REJECT duplicate-event | stale-object | changed-scene | missing-cleanup两个必须主动制造的失败样本
证据矩阵
| 维度 | 正常样本 | 边界样本 | 失败样本 | 签发条件 |
|---|---|---|---|---|
| 环境 | 固定版本与场景 | 重复加载或低帧率 | 改变一个依赖 | 差异可解释 |
| 主链 | 所有节点有记录 | 临界输入与时序 | 首节点注入偏差 | 能定位首因 |
| 结果 | 玩法与表现一致 | 生命周期完整 | 重复或丢失事件 | 同输入可复验 |
| 清理 | 对象数量稳定 | 重连或重载 | 遗留引用和订阅 | 无状态泄漏 |
练习
小结
- 是否逐项覆盖了本页原书目录,而没有换成通用 Unity 知识?
- 是否沿“引擎定位 → 版本能力 → 安装许可 → 项目创建 → 编辑器视图 → 可运行场景”保存对象、状态和事件证据?
- 是否主动制造失败并验证重载、重连或重复执行后的清理?
- 是否明确区分 Unity 5 历史复现与现代生产建议?