教程 (Tutorial)
构建您的第一个数字孪生:一个移动零件的传送带(realvirtual Know-How)
在这个简短的教程中,我们将创建一个带有源、传送带和光栅的小型数字孪生模型。
所需的 3D 组件已准备好。如果您想使用自己的 3D 数据,则需要使用 CADLink(包含在 realvirtual.io 中)或其他合适的解决方案(例如 Unitys PIXYZ)从 CAD 系统导入 3D 数据。
创建新场景 (Create a new scene)
您应始终在 realvirtual 文件夹之外创建模型。这是因为如果您导入新版本的 realvirtual.io,您不希望破坏已完成的工作。如果保持脚本在 realvirtual.io 文件夹之外,将使您能够使用 realvirtual.io 的新版本更新模型而不会出现问题。
首先创建一个新文件夹。我们将其命名为 Tutorial。选择 assets 并右键点击 Create > Folder。选择文件夹,按 F2 并将其命名为 Tutorial。

要创建新场景,请选择 Tools > realvirtual > Create new realvirtual scene

创建场景后,请使用 File > SaveAs 将其保存在 Tutorial 文件夹中,命名为 tutorialmodel:

您现在应该有一个带有基板和灯光的空场景:

您可以通过将 Gizmo 大小设置为 0 来隐藏大灯光和相机 gizmos(参见上图)。
您也可以创建一个完全空的标准 Unity 场景,并通过 Tools > realvirtual > Add Object > realvirtual 在主编菜单中添加 realvirtual 组件(在 2022 之前是 game4automation 组件)。
realvirtual 组件提供一些基本灯光、在部署的数字孪生(Game 视图)中的鼠标导航以及所有标准设置和标准 Runtime UI。
启动您的第一个场景 (Starting your first scene)
您现在可以通过按 Unity UI 顶部的 Play 来启动第一个场景。
Game 视图将自动打开,您可以看到 RuntimeUI 以及仅有基板的空模型:

插入传送带 (Insert the conveyor)
接下来我们插入一个 3D 组件。对于教程,我们使用一个准备就绪的组件,该组件已在演示模型中使用。在 Assets > realvirtual> 3DPfefabs > ConveyorSmall 下选择传送带,并将其拖入场景。将其放置在基板中间的某个位置。
您可以使用 gizmo 移动传送带,只要传送带被选中它就可见。或者您在 Transform Position 属性中输入 0,0,0。这将把传送带的零点放置到世界零点(应该也是基板的中间):

解包 Prefab (Unpacking the Prefab)
您插入场景中的传送带被称为 prefab。prefab 是一种类型的模板,可以是非常简单或非常复杂的组件。Prefab 可以在一个或多个场景中多次使用。只要场景中嵌入的 prefab 实例没有被"解包",它们仍然与 Prefab 关联,并继承对 prefab 本身的任何更改。有关 Unity Prefab 系统的更多信息,请参见 Unity 文档:https://docs.unity3d.com/Manual/Prefabs.html。
对于本教程,我们应该完全解包 Prefab 实例,并切断与原始 Prefab 的所有依赖关系。请选择场景中的 ConveyorSmall,然后通过上下文菜单选择 Prefab > Unpack Completely:

从传送带删除 realvirtual.io 组件
此步骤是可选的。传送带 prefab 已配备一些 realvirtual.io 组件。但我们想在本教程中向您展示完整的工作流程。就像没有任何准备好的内容——基于导入的 3D 对象一样。
这就是为什么我们要删除这些组件,稍后再重新添加。如果您愿意,也可以跳过此步骤,继续进行插入源。
删除对象 ConveyorSmall 上的组件 Drive,然后也删除对象 ConveyorSmall 上的 Rigidbody:

接下来删除 ConveyorSmall.Conveyor.Conveyor 上的 Transport Surface、Box Collider 和 Rigidbody。
您学会了如何从对象中删除脚本 ;-)。您现在删除了所有准备就绪的内容,我们将在此教程中再次添加这些需要的脚本。
定义传送面 (Define the transport surface)
我们现在有一个空的 3D 组件。尚未定义任何运动学和物理行为。这就是 CAD 导入后组件的样子。CAD 系统不包含除结构和几何体之外的任何信息。这意味着我们必须在 realvirtual.io 中定义所有机电一体化行为,如驱动器和传感器。
不幸的是,至今没有从 CAD 系统导出扩展信息的标准格式。然而,我们的 开放数字孪生接口 (Open Digital Twin Interface) 允许您为 CAD 系统开发自己的导出器。
首先,我们需要向传送带添加一个 Transport Surface。为此,我们选择组件 ConveyorSmall.Conveyor.Conveyor。在主菜单中选择 Tools > realvirtual > Add Script > Transport Surface,或者将 TransportSurface 脚本从 Assets>realvirtual 拖放到 ConveyorSmall.Conveyor.Conveyor 上。
一种非常简单的方法是使用 QuickEdit 来添加 TransportSurface:

Quick Edit 叠加按钮可以通过在场景视图中按 F1 打开。
插入驱动器 (Insert a Drive)
我们现在在传送带上插入一个 Drive。我们将其放置在之前 TransportSurface 所在的同一组件上。
选择场景中的 ConveyorSmall.Conveyor.Conveyor 组件,然后通过主菜单选择 Tools > realvirtual > Add Script > Drive:
或者您也可以将 Assets > realvirtual> Drive 下的 Drive 脚本拖放到 ConveyorSmall.Conveyor.Conveyor 的 Inspector 窗口上。
或者像之前一样,您也可以使用 QuickEdit 叠加窗口。
第三个选项,您也可以使用 Inspector 窗口上的 Add Component,然后输入 Drive,选择过滤后的脚本将其分配给 3D 组件。
您的模型现在应该看起来像这样:

请记住。大多数时候,您可以通过 4 种方式在 3D 组件上添加脚本:
* 通过主菜单
通过从 Assets 文件夹 Assets>game4automation* 拖放
通过使用 Inspector 窗口中的 Add Component*
* 或通过使用 QuickEdit 叠加
定义传输方向和开启 Drive
接下来,我们在 Inspector 窗口中定义 Drive 的一些属性。还请检查 Direction 是否设置为 Linear X(以便显示的传输方向是向前的)。
请检查 TransportSurface 是否分配给了 Drive,这通常是自动完成的。将 JogForward 设置为 True,将 TargetSpeed 设置为 300。

这些设置将在仿真开始时自动启动 Drive。
插入源 (Insert a source)
Source 会根据自身自动创建新组件(在 Unity 中称为"生成")。
请选择 Assets > realvirtual> 3DPrefabs > Can,并将其拖放到场景中。将罐子放置在传送带的开始处并在传送带上方。
另一种创建"标准"罐子源的方法是选择场景中的 TransportSurface,然后按键盘上的 INS。
您的模型现在看起来像这样:

请将源移动到传送带的开始处。
测试传送带 (Test the conveyor)
现在我们可以测试传送带。使用 Unity 的 Play 按钮启动仿真。

您可能会看到传送带上的纹理没有以正确的关系和正确的方向移动。您需要自己设置纹理缩放。请选择 TransportSurface,并在属性 Texture Scale 中输入 -2。
插入传感器 (Insert a Sensor)
最后一步,我们想在传送带末端放置一个 Sensor(光束)。
请通过选择 GameObject > Create Empty 或通过选择 QuickEdit 叠加中的
在场景中创建一个空的 GameObject。如果新的 GameObject 作为子级添加,请将其拖放到模型中的顶层。将新的 GameObject 重命名为 Sensor。
接下来选择 Tools > realvirtual > Add Component > Add Sensor 或选择 QuickEdit 叠加上的 Sensor。
最后但同样重要的是,您需要将 Sensor GameObject 移动到 TransportSurface 的末端。
您的模型现在看起来像这样:

现在您可以再次启动仿真,您将看到 Sensor 被占用(红色):

不要忘记通过选择 File > Save 保存您的模型
总结和下一步 (Summary and what's next)
这只是一个快速入门。请查看 Demo model 并了解各功能是如何实现的。另请查看 Physics 部分,以了解有关物理仿真、碰撞检测和运动学运动的更多信息。在此基础上,您应该查看整个 Components & Scripts 部分,以了解有关详细信息。
© 2025 realvirtual GmbH https://realvirtual.io - 版权所有。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、影印、录制或其他电子或机械方法)复制、分发或传输本出版物的任何部分。