"预制体(原始)"和"变体预制体"有什么区别?

8
我有一扇门,使用某些颜色着色器等创建而成。以前拖动门并询问我要做什么时,我选择了变体。但现在我决定选择创建原始预制件,门的颜色或者可能是着色器变成了粉色。
这是Assets中原始预制件和变体的截图。粉色的是原始预制件,应该是红色的变体。
预制件(原始)和变体预制件之间有什么区别?为什么创建原始预制件时会变成粉色?
我应该选择哪一个?原始还是变体?

Prefabs

在将门拖动到资源中之前,可以在场景视图窗口中看到门的截图:

Door

4个回答

10

就像你有一个常规的预制件来创建一个预定义对象一样,你还有预制件变体,这只是另一个层次。它代表了需要不同预定义版本的预设本身。当你不想覆盖基本预设但是想要多次使用已覆盖的预设时,预制件变体非常有用,因此你可以制作一个预设变体。

https://www.youtube.com/watch?v=ibmdm_PoyMA

因此,当你有一个预制实例并对其进行更改时,你可以覆盖原始预制(失去其原始状态),或者你可以创建一个预制件变体,然后你可以将它们都作为预制件。


7
如果你是程序员,可以将其视为多态性,其中你有一个基类,具有所有子类都共享的属性,但它们仍然可以重写这些属性(粉色变成了红色),并且它们也可以拥有自己的属性,在prefabs中,Original是基类,Variant是子类,向基类添加属性,子类继承它们。
如果你不是程序员,可以将其想象为原始prefab表示任何空房子(house original),Variant是一个带有一些家具的房子,比如一个厨房和一个沙发(house 1)以及另一个从原始prefab创建的只有电视的房子(house 2)。
现在,如果你改变(house original)的墙壁颜色,那么(house 1)和(house 2)都会有这些颜色。
总之,原始/variant prefabs在你想要从中衍生出导出物,但它们都共享某些功能/某些属性/某些位置/某些值时非常有用,因此,你只需更改原始prefab上的值,而不必去更改所有导出物上的值。

0

看起来你右边的原始版本已经被编辑并保存,导致玻璃区域的着色器/纹理配置错误。

因此,你应该修复原始版本,通过用你的变体替换它来解决问题。

变体是指例如创建不同颜色玻璃的原始门的不同版本,或通过检查器值动画定时,以便您可以重复使用相同的预制件,但将其用于不同的阶段。


0
一个预制体变体在您基于另一个预制体创建预制体时非常有用。例如,有一个预制体“汽车”,您使用它来创建另一个预制体 - “电动汽车”。Unity会询问您是否要将“Electric Car”创建为变体或原始预制件 - 这是区别所在。如果您选择预制体变体,则“Electric Car”与“Car”的链接将保持,因此:当您编辑“Electric Car”预制体时,您也可以从那里打开“Car”预制体;当您更改“Car”预制体中的某些值时,“Electric Car”将接收到更改。如果您选择原始预制体,则“Electric Car”与“Car”的链接将丢失,因此:当您编辑“Electric Car”预制体时,您将 无法从那里打开“Car”预制体;当您更改“Car”预制体中的某些值时,“Electric Car”将 不会 接收到更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接