作者:Himi. 来源:CSDN
原文:https://blog.csdn.net/xiaominghimi/article/details/50637706
官方文档:https://docs.cocos.com/creator/manual/zh/asset-workflow/prefab.html
关于Prefab的使用与讲解(CC版Prefab的方式说明)
Prefab:大家习惯喊它“预制体”,其实通俗的讲大家可以理解成是个“被打包的集合”,Prefab可以是由一个或多个节点(Node)、组件(Sprite、Label、Js脚本等)组合,当然其中也会包括组件之间的关系等一同保存。
a) 什么时候用Prefab?
当你想制作一个有通用性强、或想重复使用的且个体之间存异较少时…你都应该第一时间想到Prefab:
例1:背包中每个物品,如下图:
(此处应有一图,然而没有~)
像上图中可以明显看到,每个物品都包括:一个底图、一个物品icon、一个label数量、一个文本name,不同的是每个元素内容的不同而已。因此可以我们可以设计一个Prefab 结构 如下:
KnapItem(Node)
itemBG (Sprite)
itemIcon (Sprite)
itemCount(Label)
itemName (Label)
例2: 排行榜每一条目(基本都是相同的,可能每一条底图有区分)
(又缺了一个图-.-)
上图中我们可以将每个条目设计Prefab 其结构如下:
RankList(Node)
rankBG(Sprite)
rankOderNo(Label)
rankIcon (Sprite)
rankNick(Label)
rankEquIcon1(Sprite)
rankEquIcon2(Sprite)
rankEquIcon3(Sprite)
创建好Prefab后,利用脚本for循环实例化Prefab,并对其进行设置各自应该显示的内容、图片等即可。
b) 如何创建Prefab:
其实创建Prefab很简单,只要你在层级管理器视图创建的任意节点->拖动到->资源管理器视图即可完成创建。
c) 如何在脚本中进行实例使用:
t_prefab:{
default:null,
type:cc.Prefab
},
var tPrefab = cc.instantiate(this.t_prefab);
tPrefab.parent = this.node;
tPrefab.setPosition(-210,100);
d) 已创建好的Prefab的修改操作
当前版本无法支持选中做好的Prefab进行直接修改操作。所以我们步骤进行:
-
将制作好的Prefab拖到层级管理器
-
选中进行修改Prefab,然后查看属性检查器
-
可以看到有个“prefab”标签,其中按钮的作用如下:
“回退”:当你当前Prefab如果有任意一处与原型Prefab不同时,可点击进行还原。
“保存”:当你当前Prefab如果有任意一处与原型Prefab不同时,可点击进行保存并修改原型Prefab
【注意】修改Prefab(原型Prefab有改动)那么所有的Prefab示例都会改变!