# Hierarchy 窗口

> Use the Hierarchy window to create and organize GameObjects and control their visibility in a scene.


**打开 Unity 新项目时的默认 Hierarchy 窗口视图:**
![](/api/media?file=/engine/6000.0/media/images/Hierarchy_01.png)

**Hierarchy** 窗口显示场景中的每个[游戏对象](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/game-objects.md)，如模型、摄像机或[预制件](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/prefabs.md)。可以使用 Hierarchy 窗口对场景中使用的游戏对象进行排序和分组。在 Scene 视图中添加或移除游戏对象时，也会从 Hierarchy 窗口添加或移除它们。

Hierarchy 窗口还可以包含其他场景，每个场景都包含自己的游戏对象。

## 父子化

Unity 使用父子层级视图或父子化的概念对游戏对象进行分组。对象可以包含继承其属性的其他游戏对象。您可以将游戏对象链接在一起以方便移动、缩放或变换游戏对象的集合。移动顶级对象或父游戏对象时，也会移动所有子游戏对象。

还可以创建嵌套父子游戏对象。所有嵌套对象仍然是原始父游戏对象或根游戏对象的后代。

子游戏对象会继承父游戏对象的移动和旋转。要了解与此相关的更多信息，请参阅关于[变换组件](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/gameobject-fundamentals/class-transform.md)的文档。

&#xA;**&#x20;Child 1 和 Child 2 是 Parent 的子游戏对象。Child 3 是 Child 2 的子游戏对象，也是 Parent 的后代游戏对象。:**
![](/api/media?file=/engine/6000.0/media/images/HierarchyParenting1_01.png)

## 组织游戏对象

### 创建新游戏对象

要在 Hierarchy 窗口中创建新游戏对象，请执行以下操作：

1. 右键单击选定场景中的空白区域。
2. 选择要创建的游戏对象。

也可以按 **Ctrl+Shift+N** (Windows) 或 **Command+Shift+N** (macOS) 以创建新的空游戏对象。

**注意**：新游戏对象会自动在“重命名”模式下创建。要禁用此行为，请选择 Hierarchy 窗口中的 More (⋮) 菜单并取消选择 **Rename New Objects**。

### 切换子游戏对象可见性

要切换子游戏对象的可见性，请执行以下操作：

1. 选择父游戏对象左侧的下拉箭头 (►)。
2. 按 **Alt** 的同时单击下拉箭头 (►) 以切换根游戏对象的所有后代游戏对象的可见性。
3. 再次选择下拉箭头 (▼) 以折叠所有后代游戏对象。

### 创建子游戏对象

要创建子游戏对象，请执行以下操作：

* 在 Hierarchy 窗口中，将游戏对象拖动到父游戏对象上。


**选择 Object 4 并将其拖动到 Object 1 上，这样 Object 4 即可成为 Object 1 的子项。:**
![](/api/media?file=/engine/6000.0/media/images/HierarchyParenting2.png)

### 创建父游戏对象

可以将新游戏对象作为现有游戏对象的父项添加到 Hierarchy 视图中。

要创建父游戏对象，请执行以下操作：

1. 右键单击游戏对象，或选择同一级别上的多个游戏对象并单击右键。
2. 选择 **Create Empty Parent**。

也可以按 **Ctrl+Shift+G** (Windows) 或 **Command+Shift+G** (macOS) 以创建父游戏对象。

**注意**：如果设置了默认父游戏对象，则 Create Empty Parent 会将新游戏对象创建为默认父项的子项，而不是选定游戏对象的父项。

### 创建同级游戏对象

同级游戏对象是与另一个子游戏对象具有相同层级的游戏对象。要创建同级游戏对象，请执行以下操作：

1. 将游戏对象拖动到现有游戏对象的上方或下方。
2. 使用水平蓝色线确定游戏对象的顺序。


**将 Object 4（选定对象）拖动到 Object 2 与 Object 3 之间（以蓝色水平线指示），以在父游戏对象 Object 1（以蓝色突出显示）下方创建同级游戏对象。:**
![](/api/media?file=/engine/6000.0/media/images/HierarchyParenting3_01.png)

### 复制游戏对象

要复制游戏对象，请右键单击目标游戏对象并选择 **Duplicate**。

也可以按 **Ctrl+D** (Windows) 或 **Command+D** (macOS) 以复制选定游戏对象。

### 将游戏对象粘贴为子项

可以剪切或复制选定游戏对象，然后将它粘贴为另一个游戏对象的子项。粘贴的子游戏对象会保留其世界位置。

要将游戏对象粘贴为子项，请执行以下操作：

1. 右键单击选定游戏对象，然后选择**剪切** (Cut) 或**复制** (Copy)。
2. 右键单击预期父游戏对象，然后选择**粘贴为子项** (Paste as Child)。

也可以按 **Ctrl+Shift+V** (Windows) 或 **Command+Shift+V** (macOS) 以将游戏对象粘贴为子项。

### 使用默认父项组织游戏对象

可以将 Hierarchy 窗口中的任何游戏对象设为“默认父项”。将游戏对象拖动到 Scene 视图中时，Unity 会自动将该游戏对象设为设置为默认父项的游戏对象的子项。

要将游戏对象设为默认父项：

1. 在 Hierarchy 窗口中，右键单击游戏对象。
2. 选择**设置为默认父项** (Set as Default Parent)。

将游戏对象拖动到 Scene 视图中时，在 Hierarchy 窗口中，子游戏对象会在默认父游戏对象下方缩进。默认父游戏对象的名称为粗体。


**在此图像中，立方体游戏对象是默认父项。当用户将汽车游戏对象拖入 Scene 视图时，Unity 会自动使其成为立方体游戏对象的子项。:**
![](/api/media?file=/engine/6000.0/media/images/default-parent.png)

要从游戏对象中移除默认父项状态，请执行以下操作：

1. 在 Hierarchy 窗口中，右键单击游戏对象。
2. 选择 **Clear Default Parent** (清除默认父项)。

先前作为默认父级的游戏对象的名称不再以加粗显示。将游戏对象拖动到 Scene 视图中时，它会出现在 Hierarchy 窗口的顶层。换句话说，Unity 不会将这个游戏对象设置为先前作为默认父级的那个游戏对象的子对象。


**在此图像中，Hierarchy 窗口中没有游戏对象被设为默认父项。当用户将汽车游戏对象拖入 Scene 视图时，Unity 会将其添加到层级视图的顶层。:**
![](/api/media?file=/engine/6000.0/media/images/no-default-parent.png)

每个场景只能设置一个默认父项。在层级视图（Hierarchy）窗口中，如果你将一个游戏对象设置为默认父对象，然后又把同一场景中的另一个不同的游戏对象设置为默认父对象，那么只有第二个游戏对象才是默认父对象。

如果在 Hierarchy 窗口中有多个场景，并且在每个场景中设置了默认父项，则在将游戏对象拖动到 Scene 视图时，Unity 会将活动场景中的默认父游戏对象设为新游戏对象的父项。


**在此图像中，Scene1 和 Scene2 中的立方体游戏对象均设置为默认父项。Unity 将 Scene1 中的立方体设置为汽车游戏对象的父项，因为 Scene1 是活动场景。:**
![](/api/media?file=/engine/6000.0/media/images/multi-scene-default-parent.png)

可以在[快捷键管理器](https://docs.unity3d.com/Manual/ShortcutsManager.html)中为默认父项设置来设置键盘快捷键。在 Shortcuts 窗口中，将键盘快捷键分配给**层级视图** (Hierarchy View) > **设置为默认父项** (Set as Default Parent)。如果未设置默认父项，并且在 Hierarchy 窗口中选择了游戏对象，请使用快捷键将此游戏对象设为默认父项。设置默认父项后，使用快捷键可从任何具有它的游戏对象中移除默认父项状态。

## 设置场景的可见性和可拾取性

单击场景可见性图标可在 [Scene 视图](/engine/6000.0/manual/unity-editor/using-the-editor/using-the-scene-view.md)中隐藏和显示游戏对象，而无需更改它们在应用程序中的可见性。

选择场景拾取图标可切换是否能够在编辑期间在 Scene 视图中选择游戏对象。

这些控件在处理难以查看和选择特定游戏对象的大型或复杂场景时非常有用。


**场景可见性图标/开关:**
![](/api/media?file=/engine/6000.0/media/images/SceneVisIconsHierarchy_01.png)

如需了解更多信息，请参阅[场景可见性](/engine/6000.0/manual/unity-editor/using-the-editor/using-the-scene-view/scene-visibility.md)和[场景可拾取性](/engine/6000.0/manual/unity-editor/using-the-editor/using-the-scene-view/scene-picking.md)。

## 游戏对象排序

默认情况下，Hierarchy 窗口会按创建顺序列出游戏对象。可以在场景中向上或向下拖动选定游戏对象以更改游戏对象的顺序。

### 字母数字排序

要按字母数字顺序对游戏对象进行排序，请执行以下操作：

1. 选择**编辑 (Edit) > 偏好 (Preferences)**(macOS：**Unity > 设置 (Settings)**)。
2. 选择**启用字母数字排序** (Enable Alphanumeric Sorting)。

选择后，一个图标会出现在 Hierarchy 窗口中，允许在**转换**排序（默认值）或**字母数字**排序之间切换。


**Frame:**
![](/api/media?file=/engine/6000.0/media/images/AlphanumericToggle_01.png)

## 多场景编辑

可以在 Hierarchy 窗口中同时打开多个场景。有关更多信息，请参阅[多场景编辑](/engine/6000.0/manual/working-in-unity/working-with-scenes/multi-scene-editing.md)页面。

## 覆盖指示器

在场景中编辑预制件实例时，Unity 会在层级视图中的父游戏对象旁边显示一个指示器。此指示器可突出显示其任何子游戏对象中具有非默认覆盖值的预制件。要直接从 Hierarchy 窗口打开[覆盖 (Overrides) 下拉选单](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/prefabs/editing-prefab-via-instance.md#OverridesDropdown)，请单击覆盖指示器。覆盖指示器以蓝色线条显示在边距的左侧，且与 Inspector 窗口中的实例覆盖相同。有关更多信息，请参阅[实例覆盖](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/prefabs/prefab-instance-overrides.md)。


**下图显示了当预制件 A 的子项（游戏对象 C）的值处于非默认状态时，预制件 A 旁边显示的覆盖指示器。:**
![](/api/media?file=/engine/6000.0/media/images/hierarchy-override-indicator.png)

***

*
*
