一、Prefab简介

简单来说Prefab就是可重复使用、可批量管理、可动态生成的游戏物体模板'/

二、Prefab的创建

直接将场景中的物题拖入Project中即可创建原始预制体;

如果是再将场景中的预制体再拖入Preject则是出现选择创建原始预制体(Original Prefab)或者创建预制体变体(Prefab Variant

三、原始预制体和预制体变体的区别

1.普通预制体(原始Prefab) 就是你直接把Hierarchy物体拖进Project生成的基础模板,是独立本体,没有父级预制体。

2.预制体变体(Prefab Variant) 依附于一个父预制体,相当于「父预制体的定制版」,默认继承父预制体所有组件、参数、子物体,只单独记录你改动过的部分,没改动的内容完全跟着父预制体走。

3.普通预制体是完全独立模板;预制体变体是基于父预制体的个性化分支;两者是继承的关系,预制体变体复用父级大部分配置,只保留自己独有的修改,方便批量统一管控大量同类游戏物体。

4.两者在Unity中的图标差异:(有阴影的是预制体变体)

补充小提示 可以把变体再做成另一个变体的父级,形成多层级变体结构,但层级过多会增大后期维护难度,一般建议只做一层父预制体+一层变体。

四、预制体的编辑界面

打开预制体的编辑界面:

1.通过场景内打开:(通过点击场景内预制体体后,点击Inspector界面的Open打开)

IMG_20260611_155253..png

打开后场景:

我们可以看到,场景内其他物体都变为不怎么醒目的颜色,这样可以方便我们更加清晰的去根据环境调整预制体的状态等。

然后我们可以观察到:在这里的上方出现了特殊的三个选项:Context,Show Overrides,Auto Suve他们的注意作用:

1、Context:点开它的下拉栏,有Normal、Gray、Hidden三个选项,Normal表示直接显示原场景、Gray表示我们第一次打开时的默认场景、Hidden表示只显示单个Prebaf。

2、Show Overrides:在编辑预制体时,让它长得和场景里那个实例一模一样,方便对照;但不能直接改这些实例专属的覆盖值。

3、Auto Save:自动保存。

在预制体的Inspestor界面的上方除了Open打开场景外还有:Select、Overrides按钮

Select:点击后在Project中跳转到该预制体所在的路径并且高亮该预制体,效果如图:

Overrides:用于对比该预制体实例与预制体初始时的差异:(这里只更改了Transform中Scale的y值,可以看到被更改的值的左边会出现一条蓝线,被更改的值会被加粗处理)

IMG_20260611_16155913..jpeg

t这里如果点击Revent将发生变化的值重新变回去,而Apply则是将预制体也跟着预制体实例改变。

2.通过Project打开:(在Project通过双击预制体打开)

通过此方法打开时进入到Prebaf的专属编辑界面,在这个界面初始状态下只显示预制体本体,像要像上图一样让背景变得不同的话File→ Project Settings→ Editor → Regular Environments将想要的背景场景拖入即可。在该模式下我们的每一次对Prebaf的改变都将对所有实例造成影响(如果保存了),但是如果预制体实例是在场景内重写过那么对应的属性则不会随预制体母体改变。

五、将场景中的预制体重新转为普通游戏对象

点击场景中的预制体→ Prefab

这里的Unpack可以将预制体变体变为预制体,将预制体变为普通游戏对象;而Unpack Completely则是无论是预制体变体还是预制体直接转化为普通游戏对象。

六、总结

1. 理解预制体是可复用物体模板,学会创建预制体,分清原始预制体和预制体变体及二者差异。

2. 上下文模式(场景实例打开):可借助原场景参考,掌握Context档位、Show Overrides预览功能;会用Overrides面板查看差异、执行Apply同步、Revert还原。孤立模式(Project窗口打开):纯编辑预制体源文件,修改全局生效,知晓该模式无覆盖预览功能。

3. 学会修改预制体孤立编辑模式的背景(编辑器配色、指定专属背景场景、临时修改相机背景)。

4. 掌握Unpack、Unpack Completely两种拆解方式,能将预制体转为普通游戏对象。

5. 能通过加粗属性+左侧蓝线,快速分辨预制体实例的自定义修改项。