unity2018.3引入了全新的prefab预制件系统,在这里主要是说一下自己的理解。
一、Prefab Mode中编辑预制件
1.预制体是不允许在外部修改
预制体只能在Prefab Mode修改(注意这个修改是指整个预制体的父级关系,包括删除不包括添加)否则会弹出窗口强制要求进入Prefab Mode模式,如下:
2.Prefab Mode的场景是可以改变的
Prefab Mode的场景可以改变,而且存在两个场景,详细内容如下图:
3.预制体修改后的两种保存模式
在Prefab Mode下所做的任何改变都会马上应用到所有Prefab身上,因为Auto Save是默认勾选的,如果希望寄过调整完后手动保存则只需要取消勾选Auto Save即可。
4.断开物体与预制体联系的两种方式
以下是断开前和断开后的对比。
断开前:
a.断开当前选择层级的预制体关系
具体操作:
断开后:
这里断开之后Cube就不是预制体了变成了普通物体,但是它下面的子物体仍然是预制体。
b.断开当前选择层级及其子层级的预制体关系
具体操作:
断开后:
层级下的所有物体都变成了普通物体。
二、Nested Prefabs(嵌套式预制件)
预制体之间可以相互嵌套,且子预制体保持独立不会变成父预制体的一部分,如果预制体是其他预制体的子物体,则包里面会有多个该预制体,例如:A是B的子预制体,A也是C的子预制体,那么最终包里面会有3个A。
三、Prefab Overrides(预制件覆盖/重载)
在两种情况下会产生Override。
1.在非Prefab Mode下对预制体的缩放会产生override,如下:
通过右键修改的属性或者直接点击override之后会改变Prefab,如下:
2.在非Prefab Mode下对Prefab内部进行修改会产生Override,如下:
这些改变在还没有应用之前都不会改变Prefab,改变的只是当前物体。当右键你修改的属性时会出现多个选择,如下:
这个选择是需要你告诉Unity你改变的是哪个预制体,是Cube还是GameObject。
四、Prefab Variants(预制件变体)
将Hierarchy窗口的预制体拖入Project窗口时会弹出一个窗口,如下:
预制体变体和预制体的关系就和类中的子类和父类的关系类似,它们的关系如下:
1.预制体改变之后和它相关的预制件也会相应的改变,但是预制件已经改变的属性不会再变
2.预制件改变之后预制体并不会发生改变
教程到这里就结束了,不懂的地方可能会有点绕还需要多揣摩揣摩。