我们能帮你什么吗?
DataMesh FactVerse Unity SDK V6.2 使用说明
SDK 组成
SDK 基础包:
-
- 核心基础包和核心工具包(必装):
-
- DataMeshToolkit6.2.1.zip:SDK 核心工具包
- DataMeshXrUx1.2.1.zip:SDK 核心基础包
-
- SDK 文档:
-
- DataMesh FactVerse Cloud API v1.0 使用说明.docx
- DataMesh FactVerse Unity SDK v6.2 使用说明.docx
-
- 核心基础包和核心工具包(必装):
SDK 依赖包(根据需要选择安装):依赖包中包含以下付费插件,请在Unity的资源商店购买获取正版版权。
-
- DataMesh-BestHTTP.zip:Best HTTP/2
- DataMesh-TriLib0.0.1.zip:TriLib 2 – Model Loading Package
- DataMesh-AVProVideo.zip:AVPro Video (Director 的视频角色依赖包)
- DataMesh-VuplexWebView.zip:3D WebView (Director 的网页角色依赖包)
注意:鉴于插件的版本限制,依赖包中包含了经过测试的特定版本。如果您选择使用其他版本,可能会导致编译错误。在这种情况下,您需要自行修复与所选版本不兼容的问题。
SDK 安装
安装及环境需求
下载
在浏览器中输入以下短链接回车后即可下载相应的 SDK 包。
-
- SDK 基础包:datame.sh/sdk
- SDK 依赖包:datame.sh/ExtensionPlugin
硬件要求(推荐配置):
-
- CPU:Core i5 10600KF
- 内存:16 GB RAM
- 显卡:Nvidia GeForce RTX 3070
使用环境
-
- Unity 2020.3 LTS版本或更新版本。(建议您使用经过测试的Unity 2020.3 LTS版本,以确保最佳性能和稳定性。)
- Visual Studio 2019 或更高版本。
工程配置
导入通用插件
-
- 创建新工程
- 导入 SDK 之前,确保在 Package Manager 中安装所需插件。
- 打开工程的 Packages 目录,在 json 文件中添加以下内容。注意处理重名条目,并根据插件使用的其他版本,进行必要的代码修改。
"com.unity.xr.arfoundation": "4.2.7",
"com.unity.xr.arkit": "4.2.7",
"com.unity.xr.arcore": "4.2.7",
"com.unity.xr.core-utils": "2.1.0",
"com.unity.xr.interaction.toolkit": "2.0.3",
"com.unity.xr.interactionsubsystems": "1.0.1",
"com.unity.xr.management": "4.2.1",
"com.unity.xr.openxr": "1.5.1",
"com.unity.xr.windowsmr": "4.6.4",
"com.unity.nuget.newtonsoft-json": "3.0.2",
导入需要的本地 Package
1. 将 DependencePackages6.0.zip 解压到 packages 目录中。
2. 依次将以下 zip 包解压到 packages 目录中(解压到当前文件夹),并在解压完成后删除 zip 包。
-
- DataMesh-BestHTTP.zip
- DataMesh-TriLib0.0.1.zip
- DataMesh-AVProVideo.zip
- DataMesh-VuplexWebView.zip
3. (可选)AVProVideo 和 3D WebView 插件为可选插件,导入后默认为启用状态。如果您想禁用 AVProVideo 或 3D WebView 插件,可以按照以下步骤进行操作:
a) 在 Unity 编辑器中,选择 “Edit” -> “Project Settings” -> “Player”。
b) 展开 “Other Settings”,找到 “Scripting Define Symbols” 选项。
c) 添加要禁用插件字段:
-
- 禁用 AVProVideo:添加 “DISABLE_AVPROVIDEO”;
- 禁用 3D WebView:添加 “DISABLE_WEBVIEW”。
d) 单击【Apply】按钮保存更改。
4. 在 manifest.json 文件的末尾添加以下字段,以确保能够编译 MRTK 的相关测试用例代码。
"testables": [
"com.unity.inputsystem",
"com.microsoft.mrtk.accessibility",
"com.microsoft.mrtk.core",
"com.microsoft.mrtk.data",
"com.microsoft.mrtk.diagnostics",
"com.microsoft.mrtk.extendedassets",
"com.microsoft.mrtk.input",
"com.microsoft.mrtk.spatialmanipulation",
"com.microsoft.mrtk.standardassets",
"com.microsoft.mrtk.uxcomponents",
"com.microsoft.mrtk.uxcore",
"com.microsoft.mrtk.windowsspeech"
]
修改设置
1. 在项目的 Assets 目录下创建一个名为 rsp 的文本文件。
2. 打开该文件,并将以下内容添加到文件中。
-r:System.IO.Compression.dll
-r:System.IO.Compression.FileSystem.dll
3. 保存文件。
导入 SDK
-
- 导入 SDK 核心基础包:将 DataMeshXrUx1.2.1.zip 包解压到 packages目录中(解压到当前文件夹),并在解压完成后删除 zip 包。
- 导入 SDK 核心工具包:将 DataMeshToolkit6.2.1.zip 包解压到 packages 目录中(解压到当前文件夹),并在解压完成后删除 zip 包。
导入示例
1. 等待 Unity 编译完成后,从 Unity 菜单栏选择 Window -> Package Manager。
2. 在打开的窗口中选中 DataMesh Toolkit,在右侧的 Samples 中展开。
3. 分别点击 Common Datas 和 DataMeshDirector 右侧的 Import。
4. 等待工程编译完成。
示例
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. 选择完租户之后,开始登录。登陆成功后,显示登陆成功窗口。登陆成功窗口内会显示当前账户的信息。
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. 点击右上方的 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. 进入“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里的地板对象。
注意:由于 Director 剧本中包含灯光信息,示例中关闭了 Unity 默认场景中的灯光。
3. 确保已经在“登录FactVerse”中完成了登录。
4. 启动示例,在 Loading 之后将会显示下载面板。
注意:播放场景时,会按照场景中的设定创建灯光。
7. 屏幕下方会显示操作界面。