Golang语言情怀--第123期 全栈小游戏开发:第14节:预制件(Prefab)

2023-11-29 14:59:56 浏览数 (2)

=预制件用于存储一些可以复用的场景对象,它可以包含节点、组件以及组件上的数据。由预制件生成的实例既可以继承模板的数据,又可以有自己定制化的数据修改。

基础概念

名称

说明

示例

预制件资源

在 资源管理器 中的预制件资源,是预制件的序列化文件。

预制件实例

预制件资源被拖拽到 层级管理器 中就会生成一个预制件实例,它的根节点目前标记为亮绿色,它的子节点为暗绿色

预制件编辑模式

双击预制件资源,会进入预制件的编辑模式,此时所有的非嵌套预制件节点都显示为暗绿色。可点击 场景编辑器 左上方的按钮来 保存 修改或者 关闭 编辑模式

嵌套的预制件实例

一个预制件资源中的某个子节点是另一个预制件资源的实例,则这个子预制件实例就是一个嵌套的预制件实例

创建预制件

创建预制件有两种方法:

  1. 在场景中将节点编辑好之后,直接将节点从 层级管理器 拖到 资源管理器 中即可完成预制件资源的创建。
  2. 点击 资源管理器 左上方的 按钮,或者点击面板空白处,然后选择 Node Prefab 即可。(v3.1.1 新增)

创建完成后,原节点自动变为该预制件的实例,根节点呈现 亮绿色,非嵌套预制件子节点呈现 暗绿色。

使用预制件

将预制件资源从 资源管理器 拖拽到 层级管理器 或 场景编辑器,即可在场景中生成一个预制件的实例。 场景中的预制件实例对象,数据源来自预制件资源的反序列化,所以它的数据默认同步了预制件资源,如果对预制件实例中的各项属性进行修改,修改的数据会被存储在预制件实例中,所以不会影响到预制件资源和它生成的其它预制件实例的数据。

进入预制件编辑模式

在 资源管理器 中双击预制件资源可从场景编辑模式切换到预制件编辑模式。

此时可以在编辑器中编辑预制件资源,编辑完成之后,点击场景编辑器中的 保存 按钮即可保存编辑后的预制件资源,之后点击 关闭 按钮即可返回场景编辑模式。

注意:请尽量避免多人同时修改同一个 Prefab 资源,否则可能会导致冲突,且无法通过 git 合并解决冲突。

预制件节点的状态

预制件节点在 属性检查器 中呈现 绿色 时表示与资源关联正常;呈现 红色 则表示关联的资源丢失。

场景中编辑预制件节点

通用操作

在 层级管理器 中选中预制件节点,属性检查器 的顶部便会出现几个可操作的按钮:

按钮图标

说明

还原为普通节点。预制件节点可变为普通节点,即完全脱离和资源的关系。还可以通过点击 Creator 顶部菜单栏中的 节点 -> 取消关联当前的 Prefab 资源 来实现。

定位资源。便于快速在 资源管理器 中定位到预制件资源。

从资源还原。将当前预制件实例的数据还原为预制件资源中的数据,其中名字、位置和旋转不会被还原为预制件资源中的数据。

更新到资源。将当前预制件实例的所有数据更新到所关联的预制件资源中。

新增节点

在预制件实例下增加的新节点,在节点名字的右下角会有一个 标志,它的数据存储在预制件的实例下,所以不会影响关联的预制件资源的数据。

新增组件

在预制件实例下增加的新组件,在组件名字的后面会有一个 标志,它的数据存储在预制件的实例下,所以不会影响关联的预制件资源的数据。

删除组件

在预制件实例下删除 非预制件实例下新增的组件,会在 属性检查器 上增加一条删除的组件的数据,它的数据存储在预制件的实例下,所以不会影响关联的预制件资源的数据。

同时会在这条数据后面出现以下两个按钮:

按钮图标

功能说明

还原该删除的组件

将该删除的组件在预制件资源中同步删除

目前的一些限制

  • 不允许在预制件实例中删除从预制件资源中创建的节点
  • 不允许在预制件实例中更改从预制件资源中创建的节点的层级关系
  • 不允许预制件嵌套自己

本期就到这里,下期再见。

同学们,兴趣是最好的老师;只争朝夕,不负韶华!加油!

0 人点赞