可重用组件(Prefabs)
概览 (Overview)
Prefabs 是强大的资产,允许开发人员创建、存储和重用预配置的游戏对象及其组件。
在为项目创建最佳 prefab 时,请记住以下最佳实践:
- 简化 GameObject 结构 (Simplify GameObject Structure)
确保层次结构尽可能简单。避免不必要的嵌套或组件,以提高性能和可维护性。realvirtual 工具"Clean Up Hierarchy"支持这一点。
- 使用实例化材质 (Use Instantiated Materials)
所有材质都应该是实例化的。这有助于减少内存使用,并允许在渲染期间进行高效的批处理。您可以在 CAD link 组件中使用选项"Set and Create Materials",并在导入数据时创建实例化材质。
- 使用实例化网格 (Use Instantiated Meshes)
确保网格是唯一的实例,以避免冲突并提高创建 prefab 时的兼容性。
- 合并网格 (Combine Meshes)
如果组件由多个网格组成,使用 Mesh Combine 将多个网格合并为单个网格。
- 尽可能共享材质 (Share Materials Where Possible)
跨多个对象使用共享材质,以最大程度地减少绘制调用次数。唯一材质越少,性能越好。
通过遵循这些原则,您可以创建高效、可扩展且可集成到复杂项目中的 prefab。
在 realvirtual 中创建 Prefabs (Pro)
PrefabGenerator 是一个简化 prefab 创建的实用工具。它在 Unity 编辑器中运行,并自动化 prefab 的生成过程,包括处理子对象中的动态创建网格等子资产。它还会考虑 Drive、Kinematic 和 Group 定义,在创建 prefab 时保留其结构。PrefabGenerator 还包含场景中的实例化网格(例如来自之前的合并),从而使场景更轻量。
Combine Meshs 和 Create Prefab 仅包含在 realvirtual.io Professional 版本中
请在此处查看详细文档:
用法 (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:
