DataMesh FactVerse Unity SDK v7.3 使用说明

你在这里:
< 所有主题

SDK 组成

  • 基础库(必装):
    • datamesh.xr.ux@1.3.0.tgz
    • datamesh.toolkit@7.3.0.tgz
    • datamesh.localization.toolkit@0f65b0f4d6.tgz
    • datamesh.localization.one@d81c770c26.tgz
    • datamesh.localization.factverse@678de57e0f.tgz
    • datamesh.besthttp@1.0.0.tgz:Best HTTP/2(第三方付费)
    • datamesh.trilib@0.1.3.tgz:TriLib 2 – Model Loading Package (第三方付费)
    • datamesh.assimp@0.1.0.tgz:Open Asset Import Library (assimp) (第三方免费)
    • monitor1394.xcharts@3.12.1.tgz:XCharts (第三方付费/免费)
  • 扩展库(可选):
    • datamesh.avprovideo@1.0.0.tgz:AVPro Video (Director的视频角色依赖库)(第三方付费)
    • datamesh.vuplexwebview@1.0.0.tgz:3D WebView (Director的网页角色依赖库)(第三方付费)
  • SDK 文档:
    • DataMesh FactVerse Cloud API v1.0 使用说明.docx
    • DataMesh FactVerse Unity SDK 3 使用说明.docx
  • SDK资源
    • unitypackage

版权声明 :依赖库中包含第三方付费插件,请在Unity的资源商店购买获取正版版权。

注意:鉴于插件的版本限制,依赖库中包含了经过测试的特定版本。如果您选择使用其他版本,可能会导致编译错误。在这种情况下,您需要自行修复与所选版本不兼容的问题。

安装及环境需求

下载

在浏览器中输入以下短链接回车后即可下载相应的 SDK 包。

硬件要求(推荐配置):

  • CPU:Core i5 10600KF
  • 内存:16 GB RAM
  • 显卡:Nvidia GeForce RTX 3070

使用环境

  • Unity 2022.3 LTS 版本或更新版本。(建议您使用经过测试的 Unity 2022.3 LTS 版本,以确保最佳性能和稳定性。)
  • Visual Studio 2019 或更高版本。

工程配置

导入通用插件

1. 创建新工程。

2. 导入 SDK 之前,确保在 Package Manager 中安装所需插件。

3. 打开工程的 Packages 目录,将后缀为 tgz 的库文件放在该文件夹中。在 manifest.json 文件中添加以下内容。注意处理重名条目,并根据插件使用的其他版本,进行必要的代码修改。

				
					{
    "dependencies": {
    "com.monitor1394.xcharts": "file:com.monitor1394.xcharts@3.12.1.tgz",
    "com.datamesh.besthttp": "file:com.datamesh.besthttp@1.0.0.tgz",
    "com.datamesh.assimp": "file:com.datamesh.assimp@0.1.0.tgz",
    "com.datamesh.trilib": "file:com.datamesh.trilib@0.1.3.tgz",
    "com.datamesh.xr.ux": "file:com.datamesh.xr.ux@1.3.0.tgz",
    "com.datamesh.toolkit": "file:com.datamesh.toolkit@7.3.0.tgz",
    "com.datamesh.avprovideo": "file:com.datamesh.avprovideo@1.0.0.tgz",
    "com.datamesh.vuplexwebview": "file:com.datamesh.vuplexwebview@1.0.0.tgz",
    "com.datamesh.localization.toolkit": "file:com.datamesh.localization.toolkit@0f65b0f4d6.tgz",
    "com.datamesh.localization.one": "file:com.datamesh.localization.one@d81c770c26.tgz",
"com.datamesh.localization.factverse": "file:com.datamesh.localization.factverse@678de57e0f.tgz"
    }
}

				
			

4. 导入并设置 URP。SDK v7.0以后,推荐使用通用渲染管线(URP):Universal Render Pipeline

5. 在 Edit > Project Settings 中设置 URP 和 TriLib。

6. 设置Tags。

导入示例

1. 等待 Unity 编译完成后,从 Unity 菜单栏选择 Window -> Package Manager。

2. 在打开的窗口中选中 DataMesh Toolkit,在右侧的 Samples 中展开。分别点击 Common Datas 和 DataMeshDirector 右侧的 【Import】。

3. 在 DataMeshXR UX 的 Sample 中导入“StarterAsset”资源。

4. 在 BuildSetting 中依次配置相关示例场景。

5. 导入剧本默认环境贴图(DefaultDMCM.unitypackage)到工程。

6. 等待工程编译完成。

示例

DataMesh FactVerse Unity SDK 提供了以下基础示例:

  • 登录 FactVerse:演示如何使用 SDK 进行 FactVerse 的登录操作。
  • 使用资源库:展示如何使用 SDK 来访问和管理 FactVerse 的资源库。
  • 下载并播放 Director 剧本:演示如何使用 SDK 下载和播放 Director 剧本。
  • 下载并播放 FactVerse 场景:示范如何使用 SDK 下载并播放 FactVerse 场景。

登录 FactVerse

目的

在使用 FactVerse 的任何功能之前,都必须先进行登录。通过本示例,您将能够了解以下内容:

  • 如何初始化 SDK 的功能模块。
  • FactVerse 云服务登录的具体流程。
  • AccountManager 的常用接口及其使用方法。

使用方法

步骤

1. 进入“01 Account – Login and logout”目录,打开LoginSample场景。

2. 选中 LoginSample 物体,查看 Inspector 面板中的信息。

3. 打开 DCS Profile 属性对应的 DCS.json 配置文件,修改其中的服务器相关配置。(请根据实际使用情况进行设置)。

注意:DataMeshModule 物体下挂的 AccountManager 物体(Prefab),这是用户模块的主逻辑。

4. 启动场景。

  • 如果已经处于登录状态,便可直接显示登录成功窗口;
  • 如果为处于登录状态,就进入账户登录窗口。

5. 选择完租户之后,开始登录。登录成功后,显示登录成功窗口。登录成功窗口内会显示当前账户的信息。

6. 当账户只有一个租户的时候,会直接默认选择这个租户;如果有多个租户,会打开租户选择窗口,来进行租户的选择。

7. 选择完租户之后,开始登录。登录成功后,显示登录成功窗口。登录成功窗口内会显示当前账户的信息。

  • 点击【Scenarios】跳转到剧本查看;
  • 点击【Scenes】打开孪生场景。

8. 点击【登出】按钮,登出完成后会有提示窗口。确认登出完成后,会回到账户登录窗口。

注意:如果已经登录过,但 Token 无法验证通过,请手工删除工程的 Token 存储文件,以重新登录。

  • Token 存储目录在 [PersistencePath]/LoginData/,可直接删除此目录。
  • [PersistencePath] 的位置,请参阅Unity文档中关于 persistencePath 的描述。

访问资源库

目的

资源库是 FaceVerse 平台的基础功能之一,其中包含了各种类型的资源,如 3D 模型、图片、视频、声音等,以及使用 DataMesh Studio 工具制作的 Director 剧本。

本示例旨在指导用户:

  • 初始化资源库模块。
  • 按目录显示资源库模块中的资源。
  • 学习 LibraryManager 的常用接口和其使用方法。

使用方法

步骤

1. 进入“02 Library – List resources”目录,打开 ListResourceSample 场景。

2. 选中ListResourceSample物体,查看 Inspector 面板中的信息。

3. 与“登录 FactVerse”的示例类似,此示例也使用相同的 DCS.json 配置文件,因此无需再次修改配置。

注意:DataMeshModule 物体下挂的物体:

  • AccountManager:账户模块
  • LibraryManager:资源模块

4. 确保已经在“登录 FactVerse” 示例中完成了登录。

5. 启动此示例,在 Loading 之后将会显示当前资源库的内容。

6. 点击目录后面的【Enter按钮,可以进入一个目录,并显示该目录下的资源。

7. 点击剧本后面的【Enter】按钮,可以进入剧本播放。

8. 点击右上方的【Back】按钮,可以返回上一层目录。

下载与播放 Director 剧本

目的

这个示例旨在演示如何在 FactVerse 资源库中下载和播放 Director 剧本。它包括以下内容:

  • 通过资源路径查找并下载一个资源的方法。
  • 如何读取剧本资源。
  • 如何下载剧本所需的其他资源。
  • 如何播放剧本。
  • 在剧本播放过程中的控制方法。

使用方法

步骤

1. 进入“03 Director – Play a scenario”目录,打开 DirectorSample 场景。

2. 选中场景中的物体,查看 Inspector 面板中的信息:

  • DirectorSample:
    • json:与“访问资源库”示例类似,此示例也使用相同的 DCS.json 配置文件,因此无需再次修改配置。
    • Root物体:作为播放用的根物体,并在DirectorSample中引用。Root物体无需挂任何脚本。
    • BackStage(后台):用于存放当前不显示的物体,并在DirectorSample中引用。此物体上需要挂接脚本“BackStage”。
    • ScenarioController 物体:用于剧本的播放控制,并在DirectorSample中引用。此物体上需要挂接Director播放脚本,示例里挂接的是SimpleScenarioController,用于单机播放剧本。
  • DataMeshModule:
    • AccountManager:账户模块
    • LibraryManager:资源模块
    • DirectorManager:Director相关定义
    • AssetManager:资源加载模块。
  • Table:在场景中提供地板的显示。
    • TablePlane物体(Prefab):实际的地板对象。
  • MixedRealityPlayspace物体(Prefab):承载了场景的摄影机控制相关功能。场景里的主摄影机需要由此对象替代。
    • CameraController脚本:摄像机控制的主要脚本,并且它引用了Table里的地板对象。

注意:由于 Director 剧本中包含灯光信息,示例中关闭了 Unity 默认场景中的灯光。

3. 确保已经在“登录FactVerse”示例中完成了登录。

4. 启动该示例,在 Loading 之后将会显示下载面板。

5. 在输入框中,输入剧本在 FactVerse 资源库中的地址。例如:/test/Sample.dirpkg

6. 点击下载。如果地址确认无误,则会下载剧本,之后会自动解析剧本,并进入相关资源下载流程,全部下载完成后,会自动播放剧本。

注意:播放剧本时,会按照剧本中的设定创建灯光。

7. 屏幕下方会显示操作界面,可以点击上一步、下一步用来控制剧本播放。

注意:如果剧本中设置了摄影机运镜,那么播放剧本时,摄影机将会由剧本驱动进行运动。

下载与播放数字孪生场景

目的

数字孪生场景是通过 FactVerse Designer 制作的一种资源,存储于资源库之中。

本示例旨在指导用户:

  • 通过资源路径查找并下载数字孪生场景。
  • 读取数字孪生场景资源。
  • 下载场景所需的其他资源。
  • 播放数字孪生场景。
  • 控制场景播放过程。

准备工作:创建数字孪生场景

1. 登录 FactVerse 平台,并创建工作目录“SceneSample”。

2. 在数字孪生库页面,点击【新建】按钮,并选择【模板】,创建名字为“TemplateSample”的模板,然后进入模板详情页面。

3. 为模板“TemplateSample”增加新属性 Name:1|1、IsOpen:1|2、 Temperature:1|3。

4. 在数字孪生库页面中,点击【新建】按钮,使用“TemplateSample”模板创建孪生体“TwinObject1”。

5. 在数字孪生库页面中,点击【新建】按钮,创建孪生场景“TwinScene”,并进入场景详情页面。

6. 在场景详情页面中,引用孪生体“TwinObject1”。

* 更多设置也可以使用 FactVerse Designer 客户端,对模板和孪生场景进行显示效果修改。

7. 在 FactVerse Designer 客户端中打开模板,为模板增加显示模型;

使用方法

步骤

1. 进入“04 FactVerse – Play a digitaltwin scene”目录,打开 FactVerseSample 场景。

2. 选中场景中的物体,查看 Inspector 面板中的信息:

  • FactVerseSample:
    • json 配置文件:与“访问资源库”示例类似,此示例也使用相同的 DCS.json 配置文件,因此无需再次修改配置。
    • Root 物体:作为播放用的根物体,并在 FactVerseSample 中引用。Root 物体无需挂任何脚本。
  • ScenarioController:用于场景的播放控制,并在FactVerseSample中引用。此物体上需要挂接digitaltwin scene播放脚本,示例里挂接的是SimulationSceneController,用于单机播放场景。
  • DataMeshModule:
    • AccountManager:账户模块
    • LibraryManager:资源模块
    • DirectorManager:Director相关定义
    • AssetManager:资源加载模块
    • DigitalTwinManager: DigitalTwin场景模块。
  • Table:在场景中提供地板的显示。
    • TablePlane物体(Prefab):实际的地板对象。
  • MixedRealityPlayspace:承载了场景的摄影机控制相关功能。场景里的主摄影机需要由此对象替代。
    • CameraController脚本:摄像机控制的主要脚本,并且引用了Table里的地板对象。

注意:由于 Designer 场景中包含灯光信息,示例中关闭了 Unity 默认场景中的灯光。

3. 确保已经在“登录 FactVerse”中完成了登录。

4. 启动示例,在 Loading 之后将会显示下载面板。

5. 在输入框中,输入场景在 FactVerse 资源库中的地址。例如:/test/Sample

6. 点击下载。如果地址确认无误,则会下载场景,之后会自动解析场景,并进入相关资源下载流程,全部下载完成后,会自动播放场景。

注意:播放场景时,会按照场景中的设定创建灯光。

屏幕下方会显示操作界面。最上方是租户ID,之后是孪生体 ID 和孪生体属性组,属性组由若干键值对组成(如 “1|3”:“30℃”)。当 DFS 服务器往该租户指定孪生体发送属性变更时,孪生体属性将随之改变。

注意:DFS(数据融合服务,Data Fusion Service)是 FactVerse 平台用于接入和处理外部系统数据的关键工具。它不仅支持数据的存储、清洗和转化,还允许用户自定义数据组。通过 DFS,数字孪生体能够实时获取和呈现外部数据,从而更精确地模拟和反映现实世界设备运行的状态与变化。DFS 相关内容请参考官网发布的信息,如果您需要使用 DFS 服务,请联系 support@datamesh.com 获取相关技术支持。

更新日志

V7.3 (2025/2/14)

  • 优化代码结构,增加播放控制器基类PlayableController和协同活动播放控制器基类EventableController;增加单机剧本课件播放控制器LearnScenarioController;
  • 增加协同活动播放控制器DirectorHubController和协同剧本课件播放控制器LearnDirectorHubController(协同剧本课件相较于单机剧本课件,增加了协同服务,并且允许老师进行监考);
  • 将之前的SimulationSceneEngine以及相关的几个类合并重构为DigitalTwinServer,负责实际运行数字孪生场景,从DFS获取实时数据变化,将孪生场景的数据广播给所有连入的DigitalTwinClient,同时也负责生成运行记录文件。DigitalTwinServer可能运行在本地,也可能运行在云端。
  • 增加DigitalTwinClient模块,专门用来显示孪生场景,连接DigitalTwinServer,接收实时运行的孪生场景数据。它集成在PlayableController里,以前复杂的协同指令可以使用孪生体属性概念合理组织起来;
  • Client分为ClientLocal和ClientRemote,ClientLocal中会包含DigitalTwinServer,完成本机运行孪生场景;ClientRemote则会去连接远程的DigitalTwinServer。
  • 修改了一些Bug。

V7.2 (2024/11/19)

  • 废弃脚本
    • ScenarioManager 脚本已被废弃,不再支持。
  • 新增控制类
    • 新增以下控制类,分别负责故事线的初始化、下载、加载、播放、及舞台切换:
      • ScenarioController
      • SceneController
      • StoryController
目录