Unity クイック スタート - .NET SDK
このページには、Realm をインストールして Unity プロジェクトに統合する方法に関する情報が記載されています。
前提条件
Unity2020.3.12 f1 (LTS)
注意
Realm .NET SDKは Unity の他のバージョンと互換性がある可能性がありますが、 2020.3.12f1 (LTS)
は Realm チームがテストと開発に使用するバージョンです。 プロジェクトが Realm で動作するようにし、インストール手順が以下の手順と一致するようにするには、このバージョンを使用することをお勧めします。これは、Unity の UI がバージョン間で頻繁に変更されるためです。
インストール
Realm は、Unity で使用するためのRealm .NET SDKをインストールするためのさまざまな方法を提供します。 経験のある Unity 開発者は、 tarball を使用して Realm を手動でインストールするのが直感的な場合があります。 ただし、 Unity のパッケージ マネージャーを介してバージョン アップデートが通知 されるため、npm 経由で Realm .NET SDK をインストールすることをお勧めします。 。
スコープ付きレジストリとしてnpmを追加する
RealmUnityプロジェクト内で をダウンロードして使用する前に、 を追加する必要がありますnpm スコープ指定されたレジストリ として 。スコープ指定されたレジストリとしてnpmを追加すると、 Unityがnpmと通信するように構成され、 Realmなどのパッケージをインストールできるようになります。
Unity パッケージ マネージャー を開きますWindow Unity メニューの上部にある [ タブをクリックすることで、Window dropdown Package Managerをクリックします。 次に、右側のツールアイコンをクリックします。 ドロップダウンからAdvanced Project Settingsオプションを選択します。
スコープ指定されたレジストリのフォームに以下の詳細を入力し、保存ボタンをクリックします。
name = NPM URL = https://registry.npmjs.org Scope(s) = io.realm.unity
プロジェクトマニフェストへの Realm の追加
が から UnityRealm.NETSDKnpmRealm をインストールできるようになりました。プロジェクトの マニフェスト ファイル に依存関係として追加する必要があります 。Visual Studio で「パッケージ/manifest.json」ファイルを開きます または別のテキストエディタ。依存関係のオブジェクトの下部に、フィールド「io.realm.unity」を追加します。 とその値、引用符で使用する Realm .NET のバージョン番号。
"io.realm.unity": "<version-number>"
上記の<version-number>
を実際のバージョン番号に置き換えてください。 最新のリリース バージョンについては、 Realm-dotnetGithub リポジトリ を参照してください。 。完全なマニフェスト ファイルは次のようになります。
{ "dependencies": { ... "io.realm.unity": "10.21.0" }, "scopedRegistries": [ { "name": "NPM", "url": "https://registry.npmjs.org/", "scopes": [ "io.realm.unity" ] } ] }
このファイルを保存すると、 Unityは指定されたバージョンのRealm .NET SDK パッケージをnpmレジストリからダウンロードします。
Realm の依存関係を検証し、更新を確認する
Realmパッケージがnpmからダウンロードされたことを確認するには、 Unityメニューの上部にある [Window] タブをクリックしてUnityパッケージ マネージャーを開きます。 [ Windowドロップダウンから [ Package Manager ] をクリックします。 "Packages: In Project"タブに Realm が表示されます。
Realm パッケージのバージョン番号の横に緑色のチェック アイコンが表示されている場合は、パッケージが最新であることを意味します。 ただし、上向きの矢印のアイコンが表示される場合は、パッケージの新しいバージョンが使用可能です。 をクリックすると、最新リリースにアップグレードするオプションが表示されます。
最新の Realm .NET SDK リリースをダウンロード
Unity プロジェクト内で Realm の使用を開始する前に、Realm .NET SDK をダウンロードする必要があります。
Realm-dotnet リポジトリ リリース へ移動 ページから、プロジェクトで使用するリリースまで下にスクロールします。どのリリースを使用すればよいかわからない場合は、左の行の「最新リリース」というラベルの付いたものを使用できます。
リリースの [ Assets ] ドロップダウンまで下にスクロールし、[ io.realm.unity-[version-number].tgz<version-number> ] というラベルの付いたリンクをクリックして SDK をダウンロードします。
プロジェクト パッケージ マネージャーへの Tarball の追加
ダウンロードした Realm .NET SDK tarball をプロジェクト内に移動します。 これは、ファイルをプロジェクトの フォルダーにドラッグしてドロップすることで可能です。 tarball をプロジェクト フォルダーにコピーし、バージョン管理にコミットすると、プロジェクトに取り組む他の開発者は、Realm の依存関係を手動でダウンロードせずに、リポジトリを複製してビルドするだけで済むようになります。
次に、 Unity パッケージ マネージャー を使用して tarball をプロジェクトにロードする必要があります 。
パッケージ マネージャーを開くには、Unity メニューの上部にある [ Window ] タブをクリックします。 [ Window dropdown Package Managerをクリックします。 パッケージ マネージャー モデルが開いたら、モデルの左上にある+アイコンをクリックします。 Add package from tarball...オプションを選択します。
"io.realm.unity-bundled-<version-number>.tgz" を選択します ファイルを参照してプロジェクトのインポートを開始します。
Realm のインポート
C# スクリプトの作成 または、すでに作成した C# スクリプトを使用します。Visual Studio でそのスクリプトを開きます または別のテキスト エディターに次の行を追加して、Realm パッケージをインポートします。
using Realms;
Unity プロジェクトでの Realm の使用
Realm .NET SDKを使用して開発する場合、Unity や他のプラットフォームを使用するかに関係なく、API メソッドは同じです。 ただし、Unity には スクリプト制限 があるため、 、プロジェクトを開発する際には、次の追加の考慮事項に注意する必要があります。
マネージドコードストリング
Unity は 管理されたコードスケーリング を実行します は、バイナリ サイズを縮小するためにビルドから未使用のコードを破棄します。これにより、 BSONを C# クラスに逆直列化するときに問題が発生する可能性があります。 IL2C++ を使用するプラットフォームの場合 (iOS など)では、管理されたコードの削除はデフォルトで有効になっています。BSON と連携する場合、 [Preserv(保存)] 属性 を使用します シリアライザーによってのみ入力される型のプロパティで管理されたコードの削除を防ぐために。これらのプロパティは リフレクション を使用するため、 、Unity は プロパティ セッターの使用を静的に推論することはできません。つまり、 [Preserve] attribute
を適用しない限り、Unity はこれらのプロパティを削除します。 BSON 逆直列化を実行する例については、「 MongoDB のクエリ」と「 関数の呼び出し 」ドキュメントを参照してください。
アプリケーションの停止中に Realm を使用する
AppDomain.DomainUnload イベント 内では Realm .NET SDK にアクセスできません または Application.client イベント。つまり、プレイヤー アプリケーションの終了中は Realm にデータを書き込むことはできません。 アプリが終了する前にデータを保存する必要がある場合は、 Application.winsToQuit メソッドの使用を検討してください イベント。
注意
Windows で Unity を使用して開発する際の既知の問題
Windows で Device Sync を使用している場合、プロジェクトの複数のインスタンスを実行すると、複数のプロセスが同じ同期された Realm にアクセスしようとするため、プロジェクトがクラッシュする可能性があります。 ローカル Realm を使用している場合は、クラッシュすることなくプロジェクトの複数のインスタンスを実行できます。
その他の例
Realm Community は、Realm .NET SDK の使用方法を示す多くのプロジェクトを作成しています。 Unity とRealm .NET SDKの使用方法を示す以下の例を確認してください。
注意
MongoDB ドキュメント チームは、これらの例を直接管理することはありません。