这篇按 Console 报错和现象来查:先找第一条错误,再按类型看原因和检查项。
快速索引
报错 / 现象
优先查
NullReferenceException
空引用、Inspector 没拖、初始化顺序
MissingReferenceException
对象已 Destroy 还在访问
Missing Script
脚本类名、文件名、GUID、meta
Prefab 引用丢失
引用场景对象、移动资源、Prefab 变体
编译错误
语法、命名空间、asmdef、API 版本
包冲突
Package Manager、重复 DLL、版本不兼容
构建失败
平台模块、Player Settings、插件平台
UI 点不到
EventSystem、Raycast、遮挡、interactable
动画不播
Animator、参数、Transition、Avatar
碰撞不触发
Collider、Rigidbody、Layer Matrix、IsTrigger
Raycast 打不到
LayerMask、距离、方向、Colli ...
这篇按排查问题来查:怎么打日志、日志写什么、构建后日志在哪、异常怎么捕获、排查记录怎么留。
快速索引
我想做什么
常用方法
打普通日志
Debug.Log
打警告
Debug.LogWarning
打错误
Debug.LogError
带对象定位
Debug.Log("msg", this)
开发期断言
Debug.Assert
条件编译日志
[Conditional("UNITY_EDITOR")]
捕获异常
try/catch
async 捕获异常
async 入口自己 try/catch
查构建后日志
Player.log
看完整堆栈
Console 第一条错误
0. Debug API1234Debug.Log("普通信息"); // 普通流程日志Debug.LogWarning("警告信息"); // 可恢复但需要注意Debug.LogError("错误信息"); ...
这篇按性能问题来查:卡顿看哪、GC 哪里来、对象池怎么写、UI 和渲染先关心什么。
快速索引
现象
先查
偶发卡一下
GC、Instantiate、加载、Shader 编译
每帧都慢
Update、UI Rebuild、Rendering、Physics
越玩越卡
对象没释放、资源没卸载、列表增长、事件残留
Editor 流畅真机卡
分辨率、后处理、阴影、贴图、平台性能
打开 UI 卡
Layout Rebuild、列表创建、图片加载
子弹/特效多时卡
对象池、粒子数量、碰撞检测
内存高
贴图、音频、网格、Addressables 释放
0. Profiler 看哪里123456CPU Usage # 脚本、物理、动画、UI 耗时GC Alloc # 每帧托管内存分配Rendering # Draw Call、SetPass、渲染耗时Memory # 贴图、网格、音频、托管堆UI ...
这篇按“等待、延迟、倒计时、异步加载”来查:用协程还是 async,怎么停止,暂停时计时器是否继续。
快速索引
我想做什么
推荐写法
等一帧
yield return null
等几秒,受暂停影响
WaitForSeconds
等几秒,不受暂停影响
WaitForSecondsRealtime
等条件成立
WaitUntil
停止指定协程
保存 Coroutine 句柄
简单延迟调用
Invoke
重复调用
InvokeRepeating
文件、网络、资源异步
async/await
取消 async
CancellationTokenSource
冷却倒计时
Time.deltaTime
真实时间倒计时
Time.unscaledDeltaTime
0. 协程基础123456789101112131415161718private Coroutine fadeCoroutine;public void PlayFade(){ if (fadeCoroutine != null) { ...
这篇按 UI 开发常用操作来查:Canvas 怎么拆、按钮怎么绑、TMP 怎么赋值、弹窗怎么开关、不同分辨率怎么适配。
快速索引
我想做什么
常用组件 / API
放普通 2D UI
Canvas: Screen Space Overlay
UI 跟相机层级配合
Canvas: Screen Space Camera
世界空间血条
Canvas: World Space
做自适应布局
RectTransform Anchor / Pivot
自动排列列表
Vertical / Horizontal Layout Group
文本显示
TextMeshPro TMP_Text
按钮点击
Button.onClick
开关选项
Toggle.onValueChanged
滑条
Slider.onValueChanged
输入框
TMP_InputField.onValueChanged
安全区适配
Screen.safeArea
UI 性能检查
Canvas Rebuild / Rayc ...
这篇按资源问题来查:文件放哪、怎么引用、Resources 怎么用、Addressables 怎么加载释放、Prefab 和 ScriptableObject 注意什么。
快速索引
我想做什么
优先方式
固定依赖资源
Inspector 直接拖引用
少量路径加载
Resources.Load
中大型异步加载
Addressables
原样打包外部文件
StreamingAssets
配置数据
ScriptableObject / 表格
运行时频繁创建对象
Prefab + 对象池
热更新资源
Addressables / YooAssets 等资源系统
避免资源丢引用
保留 .meta,不要系统外乱移动
0. 推荐目录12345678910111213141516171819Assets/ _Project/ # 项目自研内容 Runtime/ # 运行时代码 Gameplay/ UI/ ...
这篇按“操作对象时想做什么”来查:找对象、拿组件、生成 Prefab、销毁、启用禁用、改父节点、换坐标。
快速索引
我想做什么
常用 API
拿自己身上的组件
GetComponent<T>()
安全判断组件是否存在
TryGetComponent<T>()
拿子节点组件
GetComponentInChildren<T>()
拿父节点组件
GetComponentInParent<T>()
查场景对象
FindObjectOfType<T>()、GameObject.Find
按 Tag 查对象
GameObject.FindWithTag
生成 Prefab
Instantiate
销毁对象
Destroy
禁用整个对象
gameObject.SetActive(false)
禁用脚本组件
enabled = false
禁用渲染
renderer.enabled = false
设置父节点
transform.SetParent
世界坐标转本地坐标
In ...
这篇只查生命周期怎么放代码:哪里缓存组件、哪里订阅事件、哪里做物理、哪里清理。
快速索引
我想做什么
生命周期
缓存自己身上的组件
Awake
检查 Inspector 引用
Awake
订阅事件
OnEnable
取消事件
OnDisable
读取其它对象初始化后的数据
Start
普通每帧逻辑
Update
输入检测
Update
Rigidbody 移动
FixedUpdate
摄像机跟随
LateUpdate
停止协程 / Tween
OnDisable
释放非 Unity 资源
OnDestroy
对象池每次取出初始化
自定义 OnSpawn / Init
对象池每次回收清理
自定义 OnDespawn / ResetState
0. 执行顺序速记12345678Awake # 对象创建后,本对象初始化OnEnable # 对象启用,可能执行很多次Start ...
这篇按 Unity 写脚本时最常查的 C# 写法整理:字段怎么暴露、集合怎么查、事件怎么解绑、null 怎么防、哪些写法别放进 Update。
快速索引按需求查写法
我想做什么
常用写法
Inspector 可调但外部不能乱改
[SerializeField] private
外部只读内部可改
public int Hp { get; private set; }
常量和只读值
const、readonly
安全访问 Dictionary
TryGetValue
遍历时删除 List 元素
倒序 for
表示能力
interface
表示有限状态
enum
订阅事件
+=
取消事件
-=
安全触发委托
?.Invoke()
判断组件是否存在
TryGetComponent
判断 Unity 对象是否销毁
if (obj == null)
低频筛选集合
LINQ
高频筛选集合
手写 for
0. 字段、属性、常量12345678910[SerializeField] private int m ...
这套文章按“我现在想查什么”来整理。少讲概念,多放速查表、常用写法、检查清单和容易忘的坑。
快速索引按任务查文章
我想做什么
先看哪篇
关键词
查 C# 常用写法
01 C# 基础与常用语法
字段、属性、集合、事件、null
不知道代码放哪个生命周期
02 MonoBehaviour 生命周期
Awake、Start、Update、OnEnable
查找对象、获取组件、实例化 Prefab
03 GameObject 与组件操作
GetComponent、Find、Instantiate
整理目录、加载资源、管理 Prefab
04 资源加载与项目结构
Resources、Addressables、ScriptableObject
做 UI、按钮、弹窗、适配
05 UI 开发
Canvas、RectTransform、TMP、Button
写延迟、倒计时、异步加载
06 协程异步与计时器
Coroutine、async、Timer、Cancel
卡顿、GC、掉帧、发热
07 性能优化
Profiler、GC、对象池、渲染
打日志、断点、查 ...
















