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



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


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


    一、Prefab 是什么 ?


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


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

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


    在这里插入图片描述


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


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


    在这里插入图片描述


    二、为什么要使用预制体

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


    例如:

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


    在这里插入图片描述


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

    KnapItem(Node)
    
    		itemBG   (Sprite)
    
        itemIcon (Sprite)
    
        itemCount(Label)
    
        itemLockFlag (Sprite)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    三、预制件的使用


    1、创建预制件


    创建预制件有两种方法:

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


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


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

    在这里插入图片描述


    2、预制件的使用


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


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


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


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


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


    (1)、常规操作

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


    在这里插入图片描述


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

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


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

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

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

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


    (2)、新增节点


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


    在这里插入图片描述


    (3)、新增组件


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


    在这里插入图片描述


    (4)、删除组件


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


    四、预制件的使用限制

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

  • 相关阅读:
    P1006 [NOIP2008 提高组] 传纸条,棋盘型dp,路径dp
    用c语言写一个剪刀石头布小游戏
    T31开发笔记:GPIO控制
    鸿蒙媒体开发【简述】
    C# JSON转为实体类和List,以及结合使用
    C语言 —— sizeof与strlen对比表 (持续更新中....)
    LeetCode 热题 100(九):回溯复习。77. 组合、17. 电话号码的字母组合、39. 组合总和
    PCL-1.12.1(C++)将kitti 点云Velodyne 数据集bin转化pcd并可视化
    Xintell——全生命周期的模型建设+智能数据中台
    014-JAVA函数定义及return语句的使用
  • 原文地址:https://blog.csdn.net/lizhong2008/article/details/132778189