Skip to content

简介

层级窗口(Hierarchy)用层级树形视图显示场景或资产中的所有 对象(Object),如场景编辑器中的模型、摄像机或预制件,UI 编辑器中的控件和布局。可以使用 层级窗口 对场景中使用的对象进行排序和分组。使用层级窗口,你可以:

  • 搜索、选中、创建和删除场景对象。
  • 隐藏或锁定对象。
  • 调整 对象(Object)层级,建立或编辑对象间的父子级关系。
  • 鼠标右键点击该对象即可访问对象的 上下文菜单(context menu) 。然后,可以从该菜单中执行其他特定于对象的操作。

【SandMod_Basics_Hierarchy001.png】

编辑器默认布局下, 层级窗口(Hierarchy)停放在 SandMod 编辑器窗口的左侧。点击查看大图。

显示层级窗口

在 SandMod 编辑器的默认布局下,场景编辑器 和 UI 编辑器 都会有 层级窗口(Hierarchy),如果没有显示或窗口消失,您可以在 菜单栏(Menu)中点选 窗口(Window) > 视图(Panel) > 层级窗口(Hierarchy) 进行显示。

【SandMod_Basics_Hierarchy002.png】

层级窗口构成

层级窗口由以下条目或功能控件构成:

【SandMod_Basics_Hierarchy003.png】

  1. 创建(Create),点击按钮后,可以选择需要创建的对象进行创建。
  2. 搜索(Search),使用 层级窗口 中的 搜索 框搜索并快速筛选场景中的对象,形成列表。默认情况下,搜索会显示与搜索词部分匹配的所有对象。如果你使用多个搜索词,只有匹配所有词的对象才会显示。要清除搜索过滤,单击 搜索(Search)框右侧的 × 按钮。
  3. 根对象条目。
  4. 对象条目。
  5. 显示按钮(Display),通过点击对象条目关联的 显示按钮(Display) ,在其他可视化窗口(如场景预览窗口或 UI 画布窗口)快速隐藏或显示 游戏对象,值得注意的是,这仅在 场景预览窗口 中显示或隐藏,不影响游戏的运行效果。
  6. 锁定按钮(Lock),通过点击对象条目关联的 锁定按钮(Lock),对象被锁定后它们在其他可视化窗口(如场景预览窗口或 UI 画布窗口)为不可被选中状态,防止该对象被误操作,值得注意的是,这仅在其他可视化窗口(如场景预览窗口或 UI 画布窗口)中锁定或解锁,不影响游戏对象的组件、属性和脚本运行功能。
  7. 计数器(Counter),统计当前层级中包含的对象条目总数。

基础操作

你可以在 层级窗口 中向 对象条目 执行以下操作:

  • 选中:鼠标指向层级窗口中的对象条目并左键单击 选择该对象。用于快速修改对象,而不必在其他可视化窗口(如场景预览窗口或 UI 画布窗口)中寻找该对象。

【SandMod_Basics_Hierarchy004.gif】

  • 右键:鼠标指向层级窗口中的对象条目并点击右键,将弹出该对象的上下文菜单。

【SandMod_Basics_Hierarchy005.png】

其上下文菜单包含以下基本操作:

名称描述
复制(Copy)复制所选对象及其所有子级。
复制并粘贴(Duplicate)在所选对创建所选对象平级的副本。
剪切(Cut)剪切所选对象及其所有子级。
粘贴(Paste)将已经复制或剪切的对象粘贴为所选对象的平级对象。
重命名(Rename)使对象名称可编辑,以便进行更改。按 Enter 键以保存更改,或按 Esc 键以取消重命名。
删除(Delete)删除所选对象及其所有子级。
展开(Expand)将所有对象节点展开。
折叠(Fold)将所有对象节点折叠收起。

不同子编辑器的层级窗口上下文菜单会略有不同,具体可以参阅 层级窗口的运用 小节。

  • 层级调整:鼠标指向层级窗口中的对象条目后长按左键并拖动, 将所拖动的对象附加为另一个对象的子级,或调整拖动对象的层级顺序。

【SandMod_Basics_Hierarchy006.gif】

管理对象父子级关系

SandMod 编辑器使用父子层级视图或父子化的概念对 对象(Object) 进行分组。可以通过对象间的父子级关系将游戏中的对象链接在一起,成为一个共同移动、旋转的对象集合。移动或旋转顶层对象或父级对象时,也会移动或旋转所有子对象。

--------------
如设置 蓝色立方体(BlueCube) 是 红色立方体(RedCube)的子级。
【SandMod_Basics_Hierarchy007.png】


当旋转和移动 红色立方体(RedCube)时,蓝色立方体也会一同移动和旋转。
【SandMod_Basics_Hierarchy008.gif】
--------------

还可以创建嵌套父子对象,即一个对象的子对象又包含其他子对象。所有嵌套对象仍然是原始父对象或根对象的后代对象。 子对象会继承父对象的移动和旋转。

【SandMod_Basics_Hierarchy009.png】

图中 Child_A 和 Child_B 是 Parent 的子对象。Child_C 是 Child_B 的子游戏对象,也是 Parent 的后代对象。点击查看大图。

构建子对象

要创建子游戏对象,请执行以下操作:

  • 在层级窗口中,将对象拖动到父级对象上,松开鼠标左键,即可创建子级对象。

【SandMod_Basics_Hierarchy010.png】

--------------
如此案例,将 Object_4(选定对象)拖动到父游戏对象 Object_1(直至对象条目高亮),以创建 Object_1 de 子游戏对象 Object_4。
【SandMod_Basics_Hierarchy011.gif】
--------------

构建同级对象

同级对象 是指与另一个对象具有相同层级的对象。要创建同级对象有以下两种方法:

  • 将 对象 层级调整为另一个对象的同级对象。具体操作为:

将 对象 拖动到意向同级对象的上方或下方,使用白色水平线定位对象的顺序,当水平白线顶点与意向同级的对象齐平,松开鼠标左键,即可创建同级对象。

【SandMod_Basics_Hierarchy013.png】

--------------
如此案例,将 Object_4(选中对象)拖动到 Object_2 与 Object_3 之间(以白色水平线指示),用于在父级对象 Object_1下方创建与 Object_2 与 Object_3 同级的对象。
【SandMod_Basics_Hierarchy014.gif】
--------------
  • 可以剪切或复制选定对象,然后将它粘贴为另一个对象的同级对象。具体操作为:

右键单击选定对象,然后选择 剪切(Cut)复制(Copy) ,右键单击意向同级的对象,然后选择 粘贴(Paste) ,即可创建同级对象。

--------------
如此案例,将 Object_4(选中对象)剪切(Cut),并将鼠标指向 Object_2 后点击鼠标右键,选择 粘贴(Paste)以在父级对象 Object_1下方创建与 Object_2 同级的对象。
【SandMod_Basics_Hierarchy015.gif】
--------------

层级窗口的运用

上述内容是关于层级窗口的基础内容阐述,如果您想了解 场景编辑器(Scene Editor)或 UI 编辑器(UI Editor)中关于 层级窗口(Hierarchy)的内容和使用方法,请先掌握本章基础内容。

场景编辑器层级窗口

在 场景编辑器(Scene Editor)中,层级窗口主要用于管理 场景预览窗口(Scene)中的 游戏对象(GameObject),除了上述功能外,还可以进行多场景编辑、预制体覆盖和解压等功能。

  • 多场景编辑(Work With Multiple Scenes),可以在 层级窗口 中同时打开多个场景。详情请参阅 多场景编辑 章节。
  • 预制体覆盖(Overlay To Prefab),预制体(Prefab)在层级窗口的修改直接同步到 预制体资产(Prefab Asset)中,从而修改预制体。详情请参阅 通过预制体实例编辑预制体 章节。
  • 预制体解压(Prefab Unpack),将预制体实例的内容恢复为常规游戏对象。详情请参阅 打开预制体 章节。

UI 编辑器层级窗口

在 UI 编辑器(UI Editor)中,层级窗口主要用于管理 UI 画布窗口(UI)中的 UI 对象(UI Object),除了上述功能外,UI 对象可在 UI 编辑器层级窗口中复制对象路径,部分 UI 对象 可在 UI 编辑器层级窗口中进行展开层级的操作。

  • 复制路径(Copy Path),目前在脚本中获取 UI 对象的唯一方法是通过该 UI 对象在 层级窗口 的层级路径进行获取。使用 API Canvas.FindChild(UI_type, Path: string) 通过复制来的层级路径可以迅速获取该 UI 对象。具体调用 UI 对象路径的方法请查看 API 手册关于 Control.FindChild API 的相关内容。
  • UI 对象展开层级(UI Object Expand Child),对于部分组合型 UI 控件(如按钮、滑动条等)可在 UI 编辑器层级窗口对该控件进行展开,让您可以编辑该控件更多细节内容。详情请参阅 展开子节点 章节。
  • 脚本联动(Script Linkages),您可以在 UI 编辑器层级窗口对 UI 对象在 自动生成脚本(Automatically Generated Script)中定位、添加交互事件或者删除 UI 对象并清除脚本的对应参数操作。具体操作方法和说明,请参阅 UI 自动生成脚本 章节。