Version: 2021.1
创建预制件
实例覆盖

在预制件模式下编辑预制件

要编辑预制件资源,请在预制件模式下将其打开。预制件模式允许查看和编辑预制件资源的内容(独立于场景中的所有其他游戏对象)。在预制件模式下所做的更改会影响该预制件的所有实例。

进入和退出预制件模式

可以单独在上下文中编辑预制件资源。

左:单独编辑预制件。右:在上下文中编辑*预制件。
左:单独编辑预制件。右:在上下文中编辑*预制件。
  • 单独:单独编辑预制件时,Unity 会隐藏当前工作场景的其余部分,只能看到与预制件本身相关的游戏对象(以及可选的预设编辑环境 - 请参阅下文)。

  • 在上下文中:在上下文中编辑预制件时,当前工作场景的其余部分仍然可见,但处于锁定状态,无法编辑。

单独编辑

可以通过多种方式开始在预制件模式下编辑预制件。要打开预制件资源并单独进行编辑,可以通过以下方式执行此操作:

  • 在 Project 窗口中双击预制件资源
  • 在 Project 窗口中选择预制件资源,然后在 Inspector 窗口中单击 Open Prefab 按钮
在 Project 窗口中选择的预制件资源(左),在 Inspector 中显示的 Open Prefab 按钮(右)
在 Project 窗口中选择的预制件资源(左),在 Inspector 中显示的 Open Prefab 按钮(右)

单独进入预制件模式时,Unity 在 Scene 视图和 Hierarchy 窗口中仅显示该预制件的内容。在下图中,预制件的根是常规游戏对象:没有蓝色的预制件实例图标。

单独预制件模式下的 Scene 视图和 Hierarchy 窗口
单独预制件模式下的 Scene 视图和 Hierarchy 窗口

在预制件模式下,Scene 视图会在顶部显示一个示踪导航栏。最右边的条目是当前打开的预制件。使用示踪导航栏可导航回主要场景或可能已打开的其他预制件资源。

Scene 视图顶部的示踪导航栏,在预制件模式下可见
Scene 视图顶部的示踪导航栏,在预制件模式下可见

Hierarchy 窗口在顶部显示一个预制件标题栏,其中显示当前打开的预制件。可以使用标题栏中的后退箭头向后导航一步,这相当于单击 Scene 视图的示踪导航栏中的上一级示踪导航。

Hierarchy 窗口的标题栏中的后退箭头,在预制件模式下可见
Hierarchy 窗口的标题栏中的后退箭头,在预制件模式下可见

在上下文中编辑

或者,可以通过预制件的实例在上下文中打开预制件资源。执行该操作的方式包括:

  • 在 Hierarchy 窗口中选择预制件实例,然后在 Inspector 窗口中单击 Open 按钮
  • 在 Hierarchy 窗口中选择预制件实例并按键盘上的 P。这是默认键盘绑定
  • 使用 Hierarchy 窗口中预制件实例旁边的箭头按钮
选择预制件实例时 Inspector 中的 Open 按钮
选择预制件实例时 Inspector 中的 Open 按钮
Hierarchy 窗口中预制件旁边的箭头按钮
Hierarchy 窗口中预制件旁边的箭头按钮

默认情况下,Unity 以灰度显示上下文的视觉表示,以在视觉上将它与编辑的预制件内容区分开来。但是,可以使用预制件栏中的 Context: 控件将它设置为以下任何状态:

  • Normal - 以正常颜色显示上下文
  • Gray - 以灰度显示上下文
  • Hidden - 完全隐藏上下文,因此只有预制件内容可见
Scene 视图顶部预制件栏中的预制件模式控件,包括 Context 控件和 Show Overrides 开关
Scene 视图顶部预制件栏中的预制件模式控件,包括 Context 控件和 Show Overrides 开关

不能选择属于上下文一部分的游戏对象,它们也不会显示在 Hierarchy 窗口中。这样便可以专注于编辑预制件而不会意外地选择其他不相关的游戏对象,并且没有混乱的 Hierarchy 窗口。但是,移动属于预制件内容一部分的游戏对象时,可以使用 Unity 中的贴靠功能贴靠到上下文中的游戏对象(前提是上下文未设置为 Hidden)。

在上下文中的预制模式下,Unity 会在与用于打开预制件的预制件实例位置匹配的位置处显示预制件内容。这意味着可以在位置和旋转值与预制件资源实际具有的值不同的情况下,预览预制件内容的根变换。

无法在上下文中的预制件模式下编辑这些值。如果需要编辑它们,可以单独打开预制件,或者在 Project 窗口中选择预制件资源并在 Inspector 中编辑值。

除了根变换属性之外,还可以覆盖预制件实例的其他属性,与预制件作为其实例的预制件资源相比,这些属性可能会彻底更改其外观。要从预制件实例预览这些覆盖的值,请在上下文中的预制件模式下,启用预制件栏中的 Show Overrides 开关。启用此设置后,对预制件实例覆盖的任何属性都可采用与预制件上下文中相同的方式进行预览,无法编辑它们。要编辑这些属性,请再次禁用 Show Overrides 开关。

Auto Save

预制件模式在 Scene 视图的右上角有一个 Auto Save 设置。启用此设置后,Unity 会将对预制件进行的任何更改自动保存到预制件资源。默认情况下会启用 Auto Save

预制件模式下 Scene 视图右上角的 Auto Save 开关
预制件模式下 Scene 视图右上角的 Auto Save 开关

如果希望在进行更改时不自动将这些更改保存到预设资源,请禁用 Auto Save 复选框。在这种情况下,当退出当前预制件的预制件模式时,Unity 会询问是否要保存未保存的更改。如果在预制件模式下编辑预制件时看起来很慢,关闭 Auto Save 可能会有所帮助。

在单独或上下文模式之间更改

通过预制件资源打开预制件模式时,Unity 会单独显示预制件的内容。但是,在 Hierarchy 窗口中通过预制件实例打开预制件模式时,这会在上下文中打开预制件模式

以这种方式打开预制件模式时,可以在 Scene 视图中看到预制件实例的上下文,即使未在编辑实例而是在编辑预制件资源本身。例如,如果在场景中通过预制件实例在上下文中打开预制件模式,则可以在编辑预制件期间,在该场景中看到周围环境。预制件也采用与场景中相同的光照条件进行显示。

在上下文中的预制件模式下打开的预制件,周围环境上下文以灰度显示
在上下文中的预制件模式下打开的预制件,周围环境上下文以灰度显示

如果具有不想在上下文中打开,而是想单独打开的预制件实例,请按住 Alt 键并单击 Open 按钮或箭头按钮以打开预制件模式。还可以在 Shortcuts 窗口中为命令 Stage > Edit Prefab in Isolation 设置自定义快捷方式。

撤消

在预制件模式下对预制件资源进行更改时,只能在仍处于预制件模式下时才能撤消这些更改。在给定的预制件资源退出预制件模式后,与该预制件资源有关的编辑在撤消历史记录中将不再可用。

编辑环境

可以将场景分配为编辑环境以便与单独的预制件模式一起使用。这样可以根据所选择的背景(而不是空场景)编辑预制件。这对于了解预制件与所选择的特定景物的对比情况非常有用。仅当单独打开预制件模式时,Unity 才会使用此编辑环境。

在预制件模式下,无法选择指定为编辑环境的场景中的游戏对象,它们也不会在 Hierarchy 窗口中显示。这样便可以专注于编辑预制件而不会意外地选择其他不相关的游戏对象,并且没有混乱的 Hierarchy 窗口。

要将场景设置为编辑环境,请打开 Editor 窗口(顶部菜单:Edit > Project Settings,然后选择 Editor 类别),然后选择 Prefab Editing Environment 部分。对于“非 UI”预制件,请使用 Regular Environment 设置,而对于 UI 预制件,请使用 UI Environment 设置。UI 预制件是根处具有矩形变换组件,而不是常规变换组件的预制件。“非 UI”预制件是具有常规变换组件的预制件。

Editor Project Settings 中的预制件编辑环境设置
Editor Project Settings 中的预制件编辑环境设置
创建预制件
实例覆盖