《Unity 5权威讲解》权威学习地图
按李在贤《Unity 5权威讲解》正式目录第 1-586 页复现全书导览,围绕 TPS 项目建立可运行、可反证、可回归的证据。
问题:怎样证明掌握的是原书项目,而不是背过一组 Unity API?
先预测:如果只保存最后一张运行截图,不知道对象如何生成、状态怎样变化、事件由谁发送、失败时如何清理,能否证明系统正确?不能。项目能力来自连续因果链,API 名称只是其中一个实现节点。
全书不是通用 API 清单,而是一条从 TPS 场景、主角、子弹、敌人到 UI、管理器、网络、Photon、布娃娃、触屏和数据库的项目主线。 本页同时保留 Unity 5 的历史语境和当前工程警示:已废弃的内置网络等 API 用于忠实理解原书,不作为新项目的生产推荐。
原书目录边界
本页严格对应《Unity 5权威讲解》第 1-586 页。以下目录项必须在实现、实验或证据中出现:
- Unity 5 简介
- 准备游戏开发
- 制作游戏场景
- 制作主人公角色
- 子弹发射效果
- 制作敌对角色
- Unity UI
- 游戏管理器
- 射线投射
- 导航高级技巧
- 光照贴图与灯光探测器
- 场景分离与合并
- Unity 内置网络游戏
- Photon Cloud 网络游戏
- 提升游戏真实感
- 数据库附录
本站以中文重新组织解释、代码与实验,不逐字复制原文。示例锁定原书 Unity 5 语境;迁移到现代 Unity 时,需要把输入、渲染、导航和网络替代方案写进版本清单。
核心模型与不可变条件
全书不是通用 API 清单,而是一条从 TPS 场景、主角、子弹、敌人到 UI、管理器、网络、Photon、布娃娃、触屏和数据库的项目主线。 主链为:TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据。每一节点只消费前一节点已经验证的对象、状态或事件,不能从最终表现反推中间过程一定正确。
本页不可变条件是:15 章与数据库附录必须按项目依赖顺序可定位,内置网络与 Photon 两条历史链必须明确标注版本边界。 任何“看起来能跑”的结果都必须经过重复加载、异常输入和边界时序检验。
五个必须落到证据的术语
“项目主线”必须落到“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“目录覆盖”必须落到“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“版本边界”必须落到“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“证据链”必须落到“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
“综合验收”必须落到“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”中的明确节点,并能由场景状态、日志或目标构建捕获验证。
原书概念逐项复现
1. Unity 5 简介
把“Unity 5 简介”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
2. 准备游戏开发
把“准备游戏开发”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
3. 制作游戏场景
把“制作游戏场景”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
4. 制作主人公角色
把“制作主人公角色”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
5. 子弹发射效果
把“子弹发射效果”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
6. 制作敌对角色
把“制作敌对角色”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
7. Unity UI
把布局、视觉、输入命中和游戏数据绑定分开验证,并覆盖目标宽高比与重复进入场景的生命周期。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
8. 游戏管理器
把“游戏管理器”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
9. 射线投射
明确 Layer、触发器、连续检测、查询范围和唯一结算边界,再用正常、擦边与高速失败样本复验。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
10. 导航高级技巧
把“导航高级技巧”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
11. 光照贴图与灯光探测器
固定模型、导入设置、材质参数、光源和相机条件,用目标构建截图与渲染数据共同验证外观。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
12. 场景分离与合并
把“场景分离与合并”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
13. Unity 内置网络游戏
为对象、玩家和消息定义唯一身份、所有权、发送方向、重复处理和断线清理,并用双端日志对齐同一事件。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
14. Photon Cloud 网络游戏
为对象、玩家和消息定义唯一身份、所有权、发送方向、重复处理和断线清理,并用双端日志对齐同一事件。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
15. 提升游戏真实感
把“提升游戏真实感”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
16. 数据库附录
把“数据库附录”放回“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”主链,记录输入、对象状态、事件、结果和失败恢复,不能只保存最终截图。 复现时保存正常、边界和主动失败三类样本,在首个偏离节点停止扩散修改。
三步复现与分步观察
可执行实现骨架
脚本边界显式保存状态,避免展示层直接决定玩法结果:
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-official-learning-map",
"bookPages": "1-586",
"chain": ["TPS场景","角色战斗","UI架构","世界系统","多人网络","真实感与数据"],
"unity": "5.x-pinned",
"scene": "fixed-tps-checkpoint",
"normal": true,
"boundary": true,
"failureReplay": true
}签发输出同时保留通过值与拒绝原因:
PASS context=version+scene+prefab+input
PASS chain=TPS场景 -> 角色战斗 -> UI架构 -> 世界系统 -> 多人网络 -> 真实感与数据
PASS invariant=15 章与数据库附录必须按项目依赖顺序可定位,内置网络与 Photon 两条历史链必须明确标注版本边界。
REJECT duplicate-event | stale-object | changed-scene | missing-cleanup两个必须主动制造的失败样本
证据矩阵
| 维度 | 正常样本 | 边界样本 | 失败样本 | 签发条件 |
|---|---|---|---|---|
| 环境 | 固定版本与场景 | 重复加载或低帧率 | 改变一个依赖 | 差异可解释 |
| 主链 | 所有节点有记录 | 临界输入与时序 | 首节点注入偏差 | 能定位首因 |
| 结果 | 玩法与表现一致 | 生命周期完整 | 重复或丢失事件 | 同输入可复验 |
| 清理 | 对象数量稳定 | 重连或重载 | 遗留引用和订阅 | 无状态泄漏 |
练习
小结
- 是否逐项覆盖了本页原书目录,而没有换成通用 Unity 知识?
- 是否沿“TPS场景 → 角色战斗 → UI架构 → 世界系统 → 多人网络 → 真实感与数据”保存对象、状态和事件证据?
- 是否主动制造失败并验证重载、重连或重复执行后的清理?
- 是否明确区分 Unity 5 历史复现与现代生产建议?