Scene Hierarchy 场景层级面板 — 树形结构、搜索、递归选择、上下文菜单
场景层级是什么
Scene Hierarchy 按 Unity GameObject 的父子关系组织成树形结构。每个节点代表一个 GameObject,展开节点可以看到它身上挂的组件(MonoBehaviour、MeshRenderer、Transform 等)。
构建逻辑在 Studio.BuildAssetData() 里——它遍历所有 SerializedFile,根据每个 GameObject 的 m_Father 字段还原父子关系。
核心功能
树形展开 / 折叠
节点前的三角箭头可以展开或折叠。AssetStudioMod 还在右键菜单里提供了 Expand All / Collapse All 一键展开 / 折叠整个树。
搜索
搜索框在面板顶部,支持文本搜索。勾选 精确匹配 复选框切换模糊 / 精确模式。搜索结果会高亮匹配的节点。
递归勾选
勾选一个父节点时,它所有子节点(以及子孙节点)会自动被勾选 / 取消。这是通过 sceneTreeView_AfterCheck 事件处理器实现的。如果只想选单个节点,手动点它就行——递归行为只在父节点被主动勾选时触发。
右键上下文菜单
在 Scene Hierarchy 里右键弹出的菜单:
| 菜单项 | 作用 |
|---|---|
| Show Related Assets | 跳转到 Asset List,自动过滤出所选 GameObject 身上挂的所有组件(Mesh、Sprite、AudioClip 等) |
| Select All | 全选树里所有节点 |
| Clear Selection | 清空所有勾选 |
| Expand All | 一键展开全部 |
| Collapse All | 一键折叠全部 |
Show Related Assets 是跨面板联动的关键功能——比如你在场景树里找到了一个叫 Character 的 GameObject,想知道它用了哪些贴图和音频,右键点一下就能自动在 Asset List 里过滤出来,比手动翻列表快得多。
什么时候用 Scene Hierarchy 而不是 Asset List
Asset List 适合按类型找东西("把所有 BGM 音频找出来");Scene Hierarchy 适合按场景对象找东西("这个 Character GameObject 身上挂了哪些组件")。两者互补:
- Mod 制作:从 Scene Hierarchy 定位要修改的 GameObject → Show Related Assets 跳去 Asset List 拿具体组件 → 选中改完再导回来;
- 资源学习:从 Scene Hierarchy 看一个完整场景的对象组织方式,理解 GameObject 嵌套结构;
- 排查引用:某个 Texture2D 在 Asset List 里只看到名字,不知道它被哪些 GameObject 用了——从 Scene Hierarchy 反向跳回去看。