Project
项目资产目录:脚本、Prefab、图片、配置、Scene。这里的东西通常会进入 Git。
Lesson 2 / 6
不要求新手会用完整 Unity,只要求能在编辑器里定位对象、看配置、看错误,并知道哪些操作会写进 Scene / Prefab / meta。
产品和后台/全栈不需要成为 Unity Editor 专家,但必须知道:一次小功能是否只改了 C#,还是已经改到 Unity 资产层。
项目资产目录:脚本、Prefab、图片、配置、Scene。这里的东西通常会进入 Git。
红错、警告、日志和 stack trace。先看第一条红错,再看调用栈文件路径。
最小顺序:Hierarchy 找对象 → Inspector 看配置 → Console 看错误 → Project 找资产。
| 模式 | 你在看什么 | 风险 | 课堂口令 |
|---|---|---|---|
| Edit Mode | 未运行时的 Scene / Prefab / Project 资产。 | 修改可能直接写进 `.unity` / `.prefab` / `.asset`。 | 改前看任务是否允许碰资产。 |
| Play Mode | 运行中的对象实例和状态。 | 退出播放后,大多数 Inspector 改动会丢;不要把它当保存结果。 | Play Mode 用来观察和验证,不用来偷偷修配置。 |
| Prefab Mode | 某个 Prefab Asset 本体。 | 保存后可能影响所有实例;合并冲突也更难处理。 | Prefab 改动必须能解释,不能让 agent 大规模手写 YAML。 |
看到 Apply / Revert Override 时要停一下:这是“把当前实例改动写回模板”或“丢弃实例改动”。
.unity 是 Scene,出现 diff 必须说明为什么。.prefab 是模板,出现 diff 必须说明影响哪些实例。.meta 保存资源 GUID,不能随手删;移动或新增资源才应该出现相关 meta。FormerlySerializedAs。Unity 新手调试时不要先猜。先看 Console,再看 stack trace。
| Console 现象 | 优先判断 | 下一步 |
|---|---|---|
| Compile error | 代码还没编译过,Play Mode 结果不可信。 | 从第一条编译错误修起。 |
NullReferenceException | 代码访问了空对象。 | 看 stack trace 的文件和行号,再查 Inspector 引用或生命周期。 |
MissingReferenceException | 对象已销毁但异步/事件还在访问。 | 查 OnDisable / OnDestroy 是否取消订阅或请求。 |
| Missing Script | Prefab / Scene 上挂了丢失脚本。 | 不要直接删,先查是否脚本移动、类名改了或 meta 丢了。 |
| 只有 Warning | 不一定阻塞,但可能说明资源或配置异常。 | 和本次任务相关的 warning 要写进风险。 |
What — 同样一个小需求,改动范围不同,风险完全不同。
| 观察到的改动 | 判断 | 原因 |
|---|---|---|
只改目标模块的 1–2 个 .cs 文件 | 通常可继续 | 同模块 C# 小改,符合可自研标准。 |
| Play Mode 里拖了一个 Text 引用,退出后消失 | 不是完成 | 运行时改动没有保存到资产。 |
出现 .unity diff | 停止解释 | 小体验需求通常不应让 Scene 重序列化。 |
出现新图片和新 .meta | 先确认 | 可能已经变成资源/Prefab 改动,不再是简单体验规则。 |
Play Mode 里把 Inspector 的某个引用拖好了,退出播放后发现没了。正确理解是什么?
课后阅读 Unity 官方 Prefab / Editor / Console 文档即可。课堂只要求记住:Editor 是状态和资产的入口;Console 是第一诊断入口;`.unity` / `.prefab` / `.meta` 是 diff 红旗,不是普通文本文件。