预制体实例覆盖
作者:互联网
在使用预制体时,经常会有这么一个需求。通过同一个预制体创建的多个实例,希望对单个实例进行修改,Unity将该功能称为“Instance overrides”。
例如我们有一个名叫“Tree”的预制体,在场景中创建了两个该预制体的实例,分别为Tree1,Tree2。如果希望Tree1比Tree2更大,可以直接选择Tree1,修改它的Scale属性(注意:这里是修改Tree1这个实例,而不是编辑预制体,如果进入了编辑预制体模式,对预制体的改动会反应到所有实例上)。只有被覆盖的属性才不受预制体影响,未覆盖的属性在预制体变化时任然会反应到对应实例上。
Unity支持覆盖的类型如下
-
Overriding the value of a property(属性值,例如缩放,激活反激活等)
-
Adding a component(添加组件)
-
Removing a component(移除组件)
-
Adding a child GameObject(添加子节点)
不支持删除节点GameObject,变更节点的父节点
使用建议:
覆盖功能会使我们在修改预制体时,并不是所有改动都会反应到所有实例上,这会导致预期外的结果,增加查错和维护成本,建议尽量不要使用。
标签:覆盖,Tree1,实例,预制,节点,属性 来源: https://www.cnblogs.com/z-cmos/p/14418618.html