与任何预制件实例一样,可以在预制件变体中使用预制件覆盖,例如修改的属性值、添加的组件、删除的组件以及添加的子游戏对象。也存在相同的限制:无法更改预制件变体中来自基础预制件的游戏对象的父级。也无法从预制件变体中删除存在于基础预制件中的游戏对象。但是,可以停用游戏对象(作为属性覆盖)来达到与删除游戏对象相同的效果。
预制件变体的要点是提供一种方便的方法来存储有意义且可重复使用的覆盖集合,这就是为什么这些覆盖通常应该保留为覆盖而不要应用于基本预制件资源的原因。
在Prefab编辑界面,对根节点Select,选中的就是本Prefab Variants的Base,如果是Prefab,根节点的Inspector就没有Select选项。
在场景中,对Prefab或Prefab Variants进行Select,选中的就是其本身(作为Asset)。
Prefab Variants就是修改的集合,便于将修改保存和复用。
这段文字还需要校验:在变体中,侧边有竖着的蓝线的就是修改的,有+号的就是添加的。都是覆盖的内容,右键可以覆盖或者放弃修改的内容
变体类似于继承,可以一直继承下去
我的理解:想一想,从逻辑上说它解决了什么问题呢? 从逻辑上说,复杂的物体的细节需要分层实现 Asset↔Prefab这之间只有一层的话,功能的实现大部分只能在Prefab上实现 少部分在场景中实例化后再修改 注意,在场景中修改的部分,是很难保存复制的 所以,这种修改只适用于微调 为了功能可以分层实现,Prefab之间应该可以继承
需要检验:嵌套的Prefab,子Prefab在编辑器中作出了修改,可以只应用到父Prefab,而不是基类Prefab,参考官方文档