Version: 6000.3
语言: 中文
预制件简介
编辑预制件资产

创建预制件

创建和使用预制件一种资产类型,允许您存储包含组件和属性的游戏对象。预制件充当模板,你可以从中在场景中创建新的对象实例。更多信息
请参阅术语表
在项目中,必须执行以下作:

  1. 创建预制件资产
  2. 创建预制件资产的实例

创建预制件资产

要创建预制件资产,请执行以下步骤:

  1. 创建一个游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    并根据需要配置其位置、比例、旋转、组件和其他属性。
  2. 将游戏对象拖到Assets文件夹中的项目窗口一个窗口,显示您的内容Assets文件夹(项目选项卡)更多信息
    术语表中查看
    .您可以选择多个游戏对象来创建多个预制件资产。

然后,Unity 从 GameObject、其所有组件和子 GameObject 创建预制件资产。原始游戏对象将成为新创建的预制件资产的实例。

左侧窗口中名为 Health Pack 的游戏对象。将游戏对象拖到 Assets 文件夹的子文件夹后,Health Pack 对象将另存为 .prefab 文件,原始 GameObject 将成为预制件资产的实例。检查器显示运行状况包预制件资产的详细信息。
左侧窗口中名为 Health Pack 的游戏对象。将游戏对象拖到Assets文件夹中,Health Pack 对象将另存为 .prefab 文件,原始游戏对象将成为预制件资产的实例。检查器显示运行状况包预制件资产的详细信息。

如果将多个尚未预制件的游戏对象拖到“项目”窗口中,Unity 会为每个游戏对象创建新的预制件资源,而无需任何额外步骤。但是,如果任何游戏对象是现有的预制件或预制件变体,Unity 会显示一个对话框,要求您确认是要从游戏对象创建新的预制件资产还是新变体。

替换预制件资产

您可以将预制件资产替换为“层次结构”窗口中的游戏对象或预制件实例。要替换预制件资产,请执行以下作:

  1. 在“层次结构”窗口中选择游戏对象或预制件。
  2. 将其拖动到“项目”窗口中的现有预制件资产之上。

如果游戏对象或预制件实例的内容与预制件资源不同,则 Unity 会显示一个对话框,以确认您打算替换预制件资源。

Unity 尝试保留对预制件和预制件的各个部分(例如子游戏对象和组件)的引用。为此,它会匹配新预制件和要替换的现有预制件之间的游戏对象名称。

由于 Unity 仅按名称执行此匹配,因此如果预制件资产的层次结构中存在多个具有相同名称的游戏对象,则匹配是不可预测的。因此,为确保 Unity 在保存现有预制件时保留引用,请确保预制件中的所有游戏对象都具有唯一的名称。

如果游戏对象附加了多个相同类型的组件,则 Unity 的行为方式类似。

创建预制件的实例

要创建预制件资产的实例,请执行以下作:

  1. 在 项目(Project) 窗口中选择预制件资源。
  2. 将预制件资源拖到层次结构或场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
    请参阅术语表
    视图。

您还可以使用脚本在运行时创建预制件实例。有关更多信息,请参阅实例化预制件

替换预制件实例的预制件资产

您可以替换预制件实例的父预制件资源,同时保留实例的位置、旋转和缩放。Unity 合并新预制件资源的内容,并通过基于名称的匹配保留任何覆盖和引用。

您可以通过以下方式替换预制件资产:

  • 预制件实例的 Inspector 中:
    1. 将预制件资源从“项目”窗口拖到“预制件”字段中检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
      请参阅术语表
      .
    2. 如果预制件有任何覆盖,Unity 会显示一个上下文菜单,您可以选择替换和保留覆盖以保留任何覆盖,或替换并丢弃任何覆盖。
  • 在“层次结构”窗口中:
    1. 右键单击预制件实例或游戏对象。
    2. 选择“预制件>替换”,或“替换并保留覆盖”以保留覆盖。
    3. 此时将显示“选择游戏对象”窗口,您可以选择要替换它的预制件资产。
  • 在“项目”窗口中:
    1. 按住 Ctrl(macOS:Command)并将预制件资源拖动到层次结构中的预制件实例或游戏对象上。
    2. 在上下文菜单中,选择“替换”(Replace) 或“替换并保留覆盖”(Replaces and Keep Overrides) 以保留覆盖。

您还可以使用PrefabUtility.ReplacePrefabAssetOfPrefabInstance方法来控制您的脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
.

其他资源

预制件简介
编辑预制件资产