Skip to content

简介

预制体(Prefab)用于存储一些可以复用的场景 游戏对象(Game Object)集合,它可以包含一个或多个游戏对象、组件以及组件上的属性值。由预制体实例化的游戏对象集合既可以继承模板的数据,又可以有自己定制化的数据修改。

预制体作用

如果要在 场景(Scene)中的多个位置或项目中的多个场景之间重复使用的 游戏对象(Game Object),比如非玩家角色 (NPC)、道具或景物,则应将此游戏对象转换为 预制体(Prefab)。这种方式比简单复制和粘贴游戏对象更好,因为预制体系统可以自动同步所有副本。

对预制体所做的任何编辑都会自动反映在该预制体的实例中,因此可以轻松地对整个项目进行广泛的更改,而无需对游戏对象集合的每个副本重复进行相同的编辑。

但是,这并不意味着所有预制体实例都必须完全相同。如果希望预制体的某些实例与其他实例不同,则可以在不进行预制体覆盖的前提下进行单独设置各个预制体实例的属性。

如果游戏对象在一开始不存在于场景中,而希望在运行时实例化游戏对象(例如,技能特效、飞弹或 NPC 在游戏过程中的特定时间节点出现),那么也应该使用预制体。

预制体的一些常见使用示例包括:

  • 环境资源。例如,在一个关卡附近多次使用的某种树。
  • 非玩家角色(NPC)。例如,某种类型的怪物可能会在游戏的多个关卡之间多次出现。它们的移动速度或声音可能不同。
  • 抛射物。例如,大炮可能会在每次射击时实例化炮弹预制体。
  • 玩家主角。玩家预制体可能被放置在游戏每个关卡(不同场景)的生成点。

【Prefab_Editing001.png】

图中显示的为预制体管理可复用的环境资源(树木)

预制体功能

👉 预制体资产(Prefab Asset),通过预制体资产在 SandMod 编辑器中创建、保存、实例化和引用预制体。

👉 预制体实例化(Prefab Instantiation),将预制体在场景中实例化,显示和处于可编辑状态。以及编辑预制体实例的相关事项、方法。

👉 预制体编辑方法(Prefab Editing Method),介绍预制体的多种编辑方式,和每种编辑方式的特点。

👉 打开预制体(Unpacking Prefab Instances),介绍将预制体实例的内容恢复到常规 游戏对象(Game Object)的方法。