Unity(2022.3.38LTS) - 预制件

目录

A. 简介

B. 创建预制体

C. 实例化预制体

D. 编辑预制体,覆盖

E. 预制体变体

F. 解除预制体实例



A. 简介

在 Unity 中,预制件(Prefab)是一种非常强大且实用的功能。

定义
预制件是一个可重复使用的游戏对象模板。它包含了游戏对象及其组件的完整配置。

作用

  1. 提高效率:创建一次,多次复用。例如,在一个射击游戏中,同类型的敌人可以创建为一个预制件,无需为每个敌人单独设置属性和组件。
  2. 批量修改:对预制件进行修改,所有基于该预制件生成的实例都会同步更新。比如,修改了敌人预制件的属性,游戏中所有的该类敌人都会相应改变。
  3. 便于管理:将相关的游戏对象组合成预制件,方便组织和管理项目资源。

B. 创建预制体

将一个游戏对象从 Hierarchy 窗口拖入 Project 窗口。创建预制件资源的这一过程也会将原始游戏对象转换为预制件实例。该对象现在将成为新创建的预制件资源的实例。预制件实例以蓝色文本显示在 Hierarchy 窗口中.

C. 实例化预制体

预制件资源从 Project 视图拖动到 Hierarchy 或 Scene 视图,在 Editor 中创建预制件资源的实例。

通过代码实例化预制体
通常使用 Instantiate 方法来实现。以下是一个 C# 示例代码:

using UnityEngine;

public class PrefabInstantiation : MonoBehaviour
{
    public GameObject prefab;

    void Start()
    {
        Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity);
    }
}

在上述代码中,首先需要有一个对预制体的引用 prefab ,然后在 Start 方法中使用 Instantiate 方法来实例化预制体,并指定其位置和旋转。

D. 编辑预制体,覆盖

双击预制体

在这里做的修改会默认发生在所有预制体实例上(前提是预制体实例没有个性化设置)

比如:

实例化三个预制体实例

现在BoxCollider组件都是打开的.

然后打开预制体,关闭这个组件

在返回场景,这些实例的组件都被关闭了

如果我手动打开一个.

在控制预制体的这个组件开关,就和这个对象上面的这个组件没关系了.

覆盖

点击应用所有

就会发现所有的预制体实例都发生了变化

修改的多了,但只需要部分覆盖,就选择需要覆盖的改变.

也可以在修改的组件上选择

E. 预制体变体

在 Unity 中,预制体变体(Prefab Variant)是基于原始预制体创建的一种特殊类型的预制体。

特点和作用

  1. 继承性:预制体变体继承了原始预制体的大部分属性和组件,但可以有一些独特的修改。
  2. 灵活性:允许在保留原始预制体结构的基础上进行局部调整,以满足特定的需求。

创建预制体变体
在项目视图中,选中原始预制体,然后通过右键菜单选择“Create > Prefab Variant”来创建一个变体。

应用场景

  1. 角色定制:比如有一个基础的角色预制体,通过创建变体可以实现不同服装、发型等外观上的变化。
  2. 道具变化:对于同一种道具,创建变体来表示不同的颜色、尺寸或功能上的细微差异。

优势

  1. 减少重复工作:无需为每个稍有不同的对象重新创建整个预制体。
  2. 保持关联:与原始预制体仍有一定的关联,方便进行统一管理和更新。

例如,在一个赛车游戏中,有一款基本车型的预制体,通过创建变体可以得到不同颜色的同款车型,或者是配备了不同性能配件的版本。

优先级:

预制体 > 预制体变体

F. 解除预制体实例

在层级页面,右键预制体实例,选择预制体 - 完全解压缩,就可以变为不同物体.

PS:预制体变体选择解压缩,可以变为预制体实例,而不是预制体变体实例.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值