unity笔记 Prefab预制件

489 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

概念

其实也就是模板,当一个物品对象需要在游戏场景中多次出现时就可以用预制件来批量生成,并且修改原件可以影响到所有副本以此可以做到批量修改

特点

1.一次制作可以多次使用
2.修改原件所有副本都会改变
3.单独修改一个副本不会影响到其他的副本或原件
4.支持嵌套组合

如何操作

创建预制件

将一个游戏对象从Hierarchy窗口拖入到Project窗口,再点击第一个选项,该游戏对象就会变为一个预制件原件,该游戏对象就会变为蓝色立方体图标

image.png

创建预制件实例

直接从Project拖到scene或Hierarchy中就可以

编辑预制件

在inspector窗口有一个Prefab栏,点击open就可以进入预制件的编辑模式,修改后会影响所有的预制件实例
编辑预制件实例直接在inspector窗口编辑,编辑完不会影响其他的实例和原件,但也可以使用overrides选项
Reveret all:还原所有更改的属性值,与原件相同
Apply all:将在该实例中修改的值写入到原件中,同时改变所有的副本 image.png

预制件变体

通过不同的预制件组合和覆盖产生各种各样的变体,和原件是父子关系,可以修改属性值,添加删除组件,但是不能修改原件的游戏对象的父级,也不能删除原件的游戏对象

创建预制件变体

右键预制件 create->Prefab Variant就可以创建一个预制件变体,然后再修改属性就可以;也可以将编辑好的实例直接拖入到文件夹中选择是创建变体还是新的原件

解压缩预制件实例

将预制件实例的内容恢复到常规的游戏对象,在Hierarchy窗口中右键单击预制件实例选择Unpack Prefab来解压缩,这样原件的修改不会再影响到该游戏对象,但是该操作对子级是无效的,也就是子级的原件还是会影响到该对象的子级,可以使用Unpack Prefab Completely对子级进行解压缩,但是子级的子级也就是孙子级还是会受到孙子级原件的影响