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

Unity 快速入门 - .NET SDK

在此页面上

  • 先决条件
  • 安装
  • 导入 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用户界面添加包

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

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

using Realms;

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

Unity执行 托管代码剥离 ,丢弃构建中任何未使用的代码以减小二进制大小。在将BSON反序列化为C#类时,这可能会导致问题。 对于使用 IL2C++ 的平台 ,例如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