共计 1929 个字符,预计需要花费 5 分钟才能阅读完成。
模板(Templates)
模板有助于在较大的项目中管理实例。它们的主要用途包括:
- 方便地在项目的编辑器中更新多个实例的属性。如果单独进行,这将是耗时且容易出错的。使用模板,您可以声明一个实例作为源模板,其他相同对象类型的实例作为它的副本。这样做之后,更改模板也将更改所有副本,即使是跨布局。
- 创建运行时实例时,可以将模板用作预设。这样做可以避免需要大量初始化操作,并使现有预设的更改或以后添加新预设更容易。
- 使用模板可以在编辑器中定义不同的层次结构,然后在运行时选择要创建的层次结构。
术语
- 模板 :被设置为其他实例使用的属性值源的实例。这些包括公共属性、插件属性、实例变量、行为属性和效果参数。模板还可以用于决定在创建对象操作时新实例应采用的值。通过布局视图或属性栏修改模板将立即反映在其所有副本实例中。
- 副本 :被设置为使用已定义为模板的实例的实例。除非明确修改,否则副本将从源模板获取其值,此时副本将使用自己的值。
模板属性
属性栏在“模板”部分显示相关属性。那里可以显示的属性包括:
- 模板模式 :通过从下拉列表中选择“模板”值,可以将实例转换为模板。如果对象类型中已有实例被设置为模板,则下拉菜单中也会提供“副本”值。
- 模板名称 :标识模板的名称。仅在模板模式设置为“模板”时显示。
- 模板源 :副本使用的模板名称。仅在模板模式设置为“副本”时显示,并且只列出同一对象类型的模板。
设置模板和副本
要开始使用此功能,您首先需要将实例设置为模板。为此,请按照以下步骤操作:
- 在布局视图中选择要成为模板的实例。
- 在属性栏的模板模式下拉菜单中选择“模板”选项。
- 将出现模板名称输入框。
- 使用模板名称文本输入为模板命名。
现在,让我们看看如何在编辑器中将其他实例设置为使用该模板: - 在布局视图中选择要成为模板副本的实例。实例必须与模板具有相同的对象类型。
- 从模板模式下拉菜单中选择“副本”选项。
- 将显示模板源下拉菜单。
- 从模板源下拉菜单中选择副本实例应使用的模板。
完成这些操作后,您会注意到属性栏中的一些属性被突出显示。这表明实例正在从源模板获取该值。
杂项选项
布局视图上下文菜单选项
- 模板上下文菜单
- 副本上下文菜单
模板实例上下文菜单选项:
- 将所有副本应用模板
- 属性仅强制所有使用此模板的副本使用模板的值。
- 将所有副本应用模板
- 层次结构
- 替换全部替换每个副本的整个层次结构以匹配模板的层次结构。这将根据需要创建和删除实例。
- 将所有副本应用模板
- 层次结构
- 修改现有更新每个副本的现有层次结构以尽可能匹配模板的层次结构。这不创建或删除任何实例。
- 在布局中选择所有副本选择此模板的所有副本在布局中。
- 打开所有带有副本的布局打开所有带有选定模板的副本的布局。
副本实例上下文菜单选项:
- 应用模板
- 属性仅强制选定的副本使用模板的值。
- 应用模板
- 层次结构
- 替换全部替换副本的整个层次结构以匹配模板的层次结构。这将根据需要创建和删除实例。
- 应用模板
- 层次结构
- 修改现有更新副本的现有层次结构以尽可能匹配模板的层次结构。这不创建或删除任何实例。
- 在布局中选择所有副本在此布局中选择此模板的所有副本。
- 打开模板布局打开选定副本使用的模板所在的布局。
属性栏上下文菜单选项
当副本的属性被修改并因此开始使用自己的值时,可以通过右键单击属性名称将其单独设置回使用模板值。
其他属性选项
传播层次结构
这个属性仅对模板实例显示,如果切换,所有与层次结构相关的更改将自动传播到副本。默认情况下开启。
忽略层次结构传播
这个属性仅对副本实例显示,如果切换,任何从模板自动传播的更改将被忽略。默认情况下关闭。
替换层次结构
当从模板使用时,将导致所有副本与模板的层次结构匹配。当在副本上使用时,该副本与其模板的层次结构匹配。根据需要创建和销毁实例。使用此选项将忽略“传播层次结构”和“忽略层次结构传播”设置。
修改层次结构
当从模板使用时,将导致所有副本尽可能与模板的层次结构匹配。当在副本上使用时,该副本尽可能与其模板的层次结构匹配。不会创建或删除实例。使用此选项将忽略“传播层次结构”和“忽略层次结构传播”设置。
运行时操作
“创建对象”系统动作具有额外的“模板名称”参数。指定时,新创建的实例将是模板实例的克隆,而不是任意一个实例。
除了使用模板实例的属性外,新实例还将使用模板的层次结构(如果存在)。这意味着可以在编辑器中创建使用相同类型实例作为根的不同层次结构,同时还可以在选择运行时创建哪一个。
如果提供的模板名称不可用,“创建对象”操作将表现得好像没有提供参数一样(使用任意实例代替)。
其他注意事项
默认情况下,副本不使用模板的位置属性。在大多数情况下,这两个属性对每个副本保持独立更有用。
在运行时,副本不再像在编辑器中那样连接到它们的模板。这意味着在运行时更改模板不会影响副本。这适用于属性和层次结构的更改。