可重用组件(Prefabs)

概览 (Overview)

Prefabs 是强大的资产,允许开发人员创建、存储和重用预配置的游戏对象及其组件。

在为项目创建最佳 prefab 时,请记住以下最佳实践:

  1. 简化 GameObject 结构 (Simplify GameObject Structure)

确保层次结构尽可能简单。避免不必要的嵌套或组件,以提高性能和可维护性。realvirtual 工具"Clean Up Hierarchy"支持这一点。

  1. 使用实例化材质 (Use Instantiated Materials)

所有材质都应该是实例化的。这有助于减少内存使用,并允许在渲染期间进行高效的批处理。您可以在 CAD link 组件中使用选项"Set and Create Materials",并在导入数据时创建实例化材质。

  1. 使用实例化网格 (Use Instantiated Meshes)

确保网格是唯一的实例,以避免冲突并提高创建 prefab 时的兼容性。

  1. 合并网格 (Combine Meshes)

如果组件由多个网格组成,使用 Mesh Combine 将多个网格合并为单个网格。

  1. 尽可能共享材质 (Share Materials Where Possible)

跨多个对象使用共享材质,以最大程度地减少绘制调用次数。唯一材质越少,性能越好。

通过遵循这些原则,您可以创建高效、可扩展且可集成到复杂项目中的 prefab。

在 realvirtual 中创建 Prefabs (Pro)

PrefabGenerator 是一个简化 prefab 创建的实用工具。它在 Unity 编辑器中运行,并自动化 prefab 的生成过程,包括处理子对象中的动态创建网格等子资产。它还会考虑 Drive、Kinematic 和 Group 定义,在创建 prefab 时保留其结构。PrefabGenerator 还包含场景中的实例化网格(例如来自之前的合并),从而使场景更轻量。

⚠️

Combine Meshs 和 Create Prefab 仅包含在 realvirtual.io Professional 版本中

请在此处查看详细文档:

Combine Meshes

Create Prefab

用法 (Usage)

  • 在场景层次结构中选择要转换为 prefab 的 GameObject。
  • 在层次结构区域右键点击并选择 realvirtual/Create Prefab
  • 将在 Assets/ 文件夹中创建一个与所选 GameObject 同名的 prefab。

示例 (Example)

在此示例中,我们从一台 CNC 机床开始,其中"Drives"等组件已经定义,还有一些组定义。

导入后的游戏对象结构:起点

要准备此 GameObject 作为 prefab,请按照以下步骤操作:

  • 清理层次结构:realvirtual/Clean up Hierarchy
  • 对每个主要的 Game Object 使用 realvirtual/Combine Meshes

这些步骤后,结构看起来像这样:

现在您的 Game Object 已准备好创建 prefab: