CocosCreator3.8研究笔记(十一)CocosCreator Prefab(预制件)理解

简介: CocosCreator3.8研究笔记(十一)CocosCreator Prefab(预制件)理解

相信很多朋友都不知道 Prefab 是什么?为什么要使用Prefab ? 怎么使用Prefab?


接下来,我们就一步一步来揭晓答案。


一、Prefab 是什么 ?


Prefab:大家习惯性地称为“预制件” 或“预制体” ,简单说,就是把场景对象、节点、组件、以及组件上的数据,打包存储起来,方便复用。


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

预制件资源被拖拽到 层级管理器 中就会生成一个预制件实例。



双击预制件资源,会进入预制件的编辑模式,可点击 场景编辑器 左上方的按钮来 保存 修改或者 关闭 编辑模式。


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



二、为什么要使用预制体

当我们想制作一个能复用、通用性强、个体之间存异较小的资源,我们应该首选Prefab预制体。


例如:

以下背包中的物品:每个物品都有一张背景边框 ,一张icon 图片,一个label 数量,还有一把锁的图标。



每个背包物品,结构都相同,仅仅是每个元素的内容不同,因此我们就可以设计一个Prefab :

KnapItem(Node)
    itemBG   (Sprite)
    itemIcon (Sprite)
    itemCount(Label)
    itemLockFlag (Sprite)


三、预制件的使用


1、创建预制件


创建预制件有两种方法:

  • 在场景中将节点编辑好之后,直接将节点从 层级管理器 拖到 资源管理器 中即可完成预制件资源的创建。

  • 点击 资源管理器 左上方的 + 按钮,或者点击面板空白处,然后选择 Node Prefab 即可。


预制体创建完成后,有一个属性:Persistent,标记该预制体是否需要同步,默认值为false 。



2、预制件的使用


(1)、创建预制体和生成预制体实例


将预制件资源从 资源管理器 拖拽到 层级管理器场景编辑器,即可在场景中生成一个预制件的实例。



场景中的预制件实例对象,数据源来自预制件资源的反序列化,所以它的数据默认同步了预制件资源。



如果对预制件实例中的各项属性进行修改,修改的数据会被存储在预制件实例中,不会影响到预制件资源和它生成的其它预制件实例的数据


(2) 、场景中编辑预制件节点


(1)、常规操作

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



  • **编辑资源图标:**点击后,可以在场景编辑器中编辑资源,还可通过资源管理器中双击预制体资源来实现。

  • **取消关联当前预制体资源图标:**还原为普通节点。预制件节点可变为普通节点,即完全脱离和资源的关系。


    还可通过点击 Creator 顶部菜单栏中的 节点 -> 取消关联当前的 Prefab 资源 来实现。

  • 定位资源图标:便于快速在 资源管理器 中定位到预制件资源,点击后资源管理中的资源会出闪烁。

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

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


(2)、新增节点


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



(3)、新增组件



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



(4)、删除组件



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


四、预制件的使用限制

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



相关文章
|
6月前
|
缓存 前端开发 算法
CocosCreator3.8研究笔记(十六)CocosCreator 2D对象
CocosCreator3.8研究笔记(十六)CocosCreator 2D对象
123 0
|
6月前
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解(3)
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
|
6月前
|
uml
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解(1)
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
206 0
|
6月前
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解(2)
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
|
6月前
|
缓存 自然语言处理 BI
CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)
CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)
111 0
|
6月前
|
前端开发 Android开发
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(3)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
|
6月前
|
Android开发 iOS开发 容器
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(2)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
161 0
|
6月前
|
JavaScript 数据安全/隐私保护 Android开发
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(1)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
111 0
|
6月前
|
JSON JavaScript 前端开发
CocosCreator3.8研究笔记(四)CocosCreator 脚本说明及使用(上)
CocosCreator3.8研究笔记(四)CocosCreator 脚本说明及使用(上)
155 0
CocosCreator3.8研究笔记(四)CocosCreator 脚本说明及使用(上)
|
6月前
|
JavaScript 前端开发 API
CocosCreator3.8研究笔记(五)CocosCreator 脚本说明及使用(下)
CocosCreator3.8研究笔记(五)CocosCreator 脚本说明及使用(下)