Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/

Unity 快速入门 - .NET SDK

在此页面上

  • 先决条件
  • 安装
  • 将 NPM 添加为限定范围的注册表
  • 将 Realm 添加到项目清单
  • 验证 Realm 依赖关系并查看更新
  • 下载最新版 Realm .NET SDK
  • 将 Tarball 添加至您的项目包管理器
  • 导入 Realm
  • 在 Unity 项目中使用 Realm
  • 托管代码剥离
  • 在应用程序退出时使用 Realm
  • 其他示例

此页面包含有关如何安装 Realm 并将其集成到 Unity 项目中的信息。

  • Unity2020.3.12 f1 (LTS)

注意

Realm .NET SDK 可能与其他版本的 Unity 兼容,但 2020.3.12f1 (LTS) 是 Realm 团队用于测试和开发的版本。我们建议使用此版本,以确保您的项目可与 Realm 配合使用,并且安装步骤与以下步骤匹配,因为 Unity 的用户界面经常在版本之间发生变化。

Realm 提供了多种方法来安装 Realm .NET SDK 以与 Unity 一起使用。经验丰富的 Unity 开发者可能会发现使用 tarball 手动安装 Realm 非常直观。但是,我们建议通过 npm 安装 Realm .NET SDK ,因为它会 通过 Unity 的包管理器提供版本更新通知

1

在下载并在 Unity 项目中使用 Realm 之前,必须将 NPM 添加为限定范围的注册表。将 NPM 添加为限定范围的注册表可将 Unity 配置为与 NPM 通信,从而允许您安装软件包,例如 Realm。

打开 Unity 包管理器 Window单击 Unity 菜单顶部的 标签页。单击Package Manager 中的Window dropdown 。然后,单击右上角的齿轮图标。从下拉列表中选择Advanced Project Settings 选项。

选择“高级项目设置”

使用以下详细信息填写限定范围的注册表单,然后单击“保存”按钮。

name = NPM
URL = https://registry.npmjs.org
Scope(s) = io.realm.unity
下载最新版本的 .NET SDK
2

现在 Unity 可以从 NPM 安装 Realm .NET SDK 了,您需要将 Realm 作为依赖项添加到项目的清单文件中。在 Visual Studio 或其他文本编辑器中打开“Packages/manifest.json”文件。在依赖对象的底部,添加字段“io.realm.unity”及其值,即要用引号括起来的 Realm .NET 版本号。

"io.realm.unity": "<version-number>"

请记住将上面的 <version-number> 替换为实际版本号。您可以在 realm-dotnet GitHub 存储库 中找到最新版本 。您的完整清单文件应如下所示:

{
"dependencies": {
...
"io.realm.unity": "10.21.0"
},
"scopedRegistries": [
{
"name": "NPM",
"url": "https://registry.npmjs.org/",
"scopes": [
"io.realm.unity"
]
}
]
}

保存此文件时,Unity 会从 NPM 注册表下载指定版本的 Realm .NET SDK 包。

3

要验证是否已从 NPM 下载 Realm 包,请通过单击 Unity 菜单顶部的 Window 标签页打开 Unity 包管理器。单击 Window 下拉列表中的 Package Manager。你应该在 "Packages: In Project" 标签页上看到 Realm。

已安装 Unity Realm

如果您在 Realm 包的版本号旁看到绿色的复选图标,则表示此包是最新的。但是,如果您看到向上箭头图标,则表明此包有新版本可用。单击此图标,您就可以选择升级到最新版本。

1

在 Unity 项目中开始使用 Realm 之前,您必须下载 Realm .NET SDK。

导航到 realm-dotnet 存储库版本 页面,然后向下滚动到要在项目中使用的版本。如果不确定使用哪个版本,可以使用左行标记为 “最新版本” 的版本。

查找最新版本的 .NET SDK

向下滚动到版本的 “资产” 下拉列表,然后单击标有 “io.realm.unity-<version-number> .tgz” 的链接以下载 SDK。

下载最新版本的 .NET SDK
2

将下载的 Realm .NET SDK tarball 移动到项目中。为此,您可以将文件拖放到项目的文件夹中。将 tarball 复制到项目文件夹并将其提交给版本控制,可确保处理该项目的其他开发者只需克隆存储库并进行构建,而无需手动下载 Realm 依赖项。

接下来,您必须使用 Unity 包管理器 将 tarball 加载到项目中 。

要打开包管理器,请单击 Unity 菜单顶部的Window标签页。单击Package Manager中的Window dropdown 。包管理器模型打开后,单击模型左上角的+图标。选择Add package from tarball...选项。

从 Tarball Unity 用户界面添加软件包

选择“io.realm.unity-bundled-<version-number>.tgz”文件以开始导入项目。

创建 C# 脚本或使用已创建的 C# 脚本。在 Visual Studio 或其他文本编辑器中打开该脚本,然后添加以下行以导入您的 Realm 包:

using Realms;

使用Realm .NET SDK进行开发时,无论您使用 Unity 还是其他平台,API 方法都是相同的。 但是,由于 Unity 有一些 脚本限制 ,在开发项目时还应记住以下额外注意事项:

Unity 执行 托管代码剥离 ,丢弃构建中任何未使用的代码以减小二进制大小。在将 BSON 反序列化为 C# 类时,这可能会导致问题。对于使用 IL2 CPP 的平台 ,例如 iOS,默认情况下启用托管代码剥离。使用 BSON 时,请使用 [Preserve] 属性 以防止在仅由序列化器填充的类型属性上剥离托管代码。由于这些属性使用 反射 ,Unity 无法静态推断使用了属性 setter。这意味着除非您应用 ,否则[Preserve] attribute Unity 将删除这些属性。有关何时可以执行 BSON 反序列化的示例,请查看 查询 MongoDB 调用函数 文档。

AppDomain.DomainUnload 事件Application.quitting 事件中无法访问 Realm .NET SDK。这意味着当玩家应用程序退出时,您无法向 Realm 写入数据。如果您需要在应用程序退出前存储一些数据,请考虑使用 Application.wantsToQuit 事件。

注意

使用 Unity 进行开发时的 Windows 上的已知问题

在 Windows 上,如果使用的是 Device Sync,则在运行项目的多个实例时,项目可能会崩溃,因为多个进程会尝试访问同一已同步 Realm。如果使用的是本地 Realm,则可运行项目的多个实例而不会崩溃。

Realm 社区已创建很多项目来演示 Realm .NET SDK 的用法。请查看以下示例,它们演示了如何将 Realm .NET SDK 与 Unity 一起使用!

注意

MongoDB 文档团队不直接维护这些示例。

后退

.NET SDK

来年

Realm 文件