unity-预制体

目录

预制体的概念

预制体的创建步骤

1.在场景中创建一个游戏对象

2.将该游戏对象拖动到项目窗口中的一个文件夹中,即可生成一个预制体

预制体的使用

实例化对象

更改预制体的属性

更改预制体的组件

原始预制体和预制体变体

原始预制体(Original Prefab)

预制体变体(Prefab Variant)

区别

对象的组件应用于预制体


预制体的概念

在Unity中,预制体(Prefab)是一种可以预先配置和存储游戏对象及其组件的资源类型。预制体允许开发者创建、配置和实例化对象的模板。

预制体的创建步骤

1.在场景中创建一个游戏对象

2.将该游戏对象拖动到项目窗口中的一个文件夹中,即可生成一个预制体

预制体的使用

实例化对象

只需要将项目窗口的预制体拖到场景窗口或层级窗口中

更改预制体的属性

我们可以更改预制体的一些属性

除了位置等一些特殊属性外,更改预制体的属性,会同步作用于它的所有对象中。例如,这里我修改缩放属性

在上图中可以看到,我更改了预制体的缩放属性,它的两个对象都同步进行了更改

更改预制体的组件

添加或删除预制体的组件,其下的对象也会同步进行更改

原始预制体和预制体变体

原始预制体(Original Prefab)

定义:原始预制体是最基本的预制体类型。它是一个独立的模板,包含游戏对象及其所有组件和配置。

预制体变体(Prefab Variant)

定义:预制体变体是基于另一个预制体(通常是原始预制体)创建的,它继承了原始预制体的所有属性,但可以进行额外的修改和配置。

区别

我们可以在原项目的基础上,再创建一个原始预制体

只需要复制(ctrl+D)第一个预制体的对象,并稍微做一些改变,比如加个帽子

然后将这个做了改变的对象拖到项目窗口中,它会弹出一个提示

因为这个对象是基于第一个预制体进行的更改,而现在我们要为这个对象创建一个预制体,系统就会提示是创建原始预制体还是预制体变体

如果选择原始预制体,则创建出来的预制体只与做了更改的对象对应,而不与另外两个对象对应,它们是互相独立的。换句话说,如果在新创建的原始预制体里做一些属性更改,只有做了更改的对象会进行同步,而另外两个对象不会同步。

如果选择预制体变体,则创建出来的预制体会与做了更改的对象对应,不会与另外两个对象对应。换句话说,如果在新创建的预制体变体里做一些属性更改,做了更改的对象会进行同步,而另外两个对象不会同步。但是,如果我们对之前的原始预制体做一些属性更改,做了更改的对象和另外两个对象都会进行同步更改。因为预制体变体就是基于原始预制体的。

预制体变体的特点

  • 继承性:预制体变体继承其基预制体的所有特性和属性,除非这些属性在变体中被显式地覆盖。
  • 定制化:可以对预制体变体进行定制,而不影响其基预制体及其其他变体。
  • 层级修改:对基预制体的修改会传播到所有基于它的变体,但变体中覆盖的属性除外。

对象的组件应用于预制体

当我们对对象的组件进行了更改(删除或添加),并想要应用到预制体中

如上图,我在一个对象中添加了一个Rigidbody组件并删除了一个box collider组件,此时我想要将这些更改应用到预制体中,可以点击右侧的三个点,然后选择应用到预制体....

如果更改的组件很多,一个一个应用到预制体很麻烦,可以点击“覆盖”,选择全部应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值