1.预制体的概念
2.预制体的创建
3.预制体的使用
4.预制体的修改
1.预制体的概念
预制体:预先制作好的游戏物体(游戏物体:GameObject)
为什么需要?
比如Moba游戏里有许多小兵。小兵长的基本一样,但也有不同类型。远程的炮车,近战的。
怎样实现,什么时候放小兵出来?
游戏开始后20秒生成小兵。小兵是加载出来。
加载什么?或者说,以什么为模板?
这个,模板就是 预制体。
2.预制体的创建
直接将游戏物体拽到项目面板中,Unity会自动为我们生成一个预制体。
预制体若由多个物体组成,需要将1个作为父物体,其余作为子物体。
然后拖到project项目面板。
可见,预制体的父物体标变蓝色了、物体名变蓝色了。
邮件->在资源浏览器查看,可见预制体是一个资源文件,后缀.prefab
3.预制体的使用
将预制体从项目面板中拖拽到层级面板中达到复用的效果
4.预制体的修改
·基于预制体创建的游戏物体比较接近“引用关系”,我们修改预制体会直接导致场景中的游戏物体发生变化。
·预制体被删除,不会影响游戏中的物体,但是游戏物体会在层级面板中变成红色,意味着预制体被删除了,我们可以在层级面板中右键取消这种引用关系,让这个游戏物体变成普通游戏物体。
Tip:
Unpack Prefab :解除当前等级的Prefab绑定,不会对其嵌套的Prefab有影响
Unpack Prefab Completely :解除Prefab的所有绑定关系,包括其嵌套的Prefab
·预制体的修改具有特殊性,需要双击进入“异世界”进行编辑
在这个界面可单独修改预制体的各个组成物体,通过拖材质到Scene(场景)或Hierarchy(层级)面板的物体上材质。这些操作将改变预制体,进而更改所有场景中的预制体。
而不在这个界面操作,比如选择场景中的一个进行修改,只会影响个体。
在层级面板有 > 按钮返回。
还可以这样进入"异世界":
预制体可以套娃,也就是预制体套预制体。
变体
创建预制体的过程中,如果游戏物体已经是预制体,Unity会弹窗提醒我们选择创建模式
1.原始预制体:一个完全独立的预制体
2.预制体变体:旧的预制体变化,变体也会发生变化,但是变体保留和旧预制体不同的部分
改变预制体会使所有预制体改变,但如果修改的部分,比如给一个物体上色。场景中的预制体这个物体已经上过色了,那么给修改project预制体的母版的这部分,并不会应用到已修改这部分的场景中预制体。(类似就近原则)
如果将一个预制体拖入project,会提示三个选项,
Original Prefab
Prefab Variant(Variant译为:变种; 变体; 变形)
Cancel
对了,拖的那个物体也会变成两个选项选择的那个类型。
比如我选择Original Prefab,那么我拖的那个就变成Original Prefab类型的新预制体了也。
进入异世界修改原预制体
退出可见新的original不受影响
改变原预制会影响Variant,但改变Variant不影响原预制体