Netcodeを使用して共有ARシーンをセットアップする
共有ARは、マルチプレイヤーのAR体験を作成できるARとネットワーク機能の集合です。 この入門ガイドでは、ネットワークマルチプレイヤーの設定、現実世界のトラッキングの有効化、そしてUnityのNetcode for GameObjectsを使用してLightship Network Serverに接続する方法について学びます。
前提条件
- Lightship ARを有効にしたUnityプロジェクト(../../setup.mdx)が必要です。
- Shared-ARプラグインをインストール](../../setup.mdx#setting-up-lightship-ardk)する必要があります。
- ARSessionとXROrigin](../../setup.mdx#setting-up-a-basic-ar-scene)を持つARシーンが必要です。
- UnityドキュメントのGet started with NGOを参照して、Netcode for Gameobjectsの概念と使用方法を理解しておきます。

シーンにコンポーネントを追加する
共有ARを使用するには、Unityシーンに以下のコンポーネントを追加する必要があります。
-
Network Manager オブジェクトをシーンのルートに追加します。
- Hierarchy でARシーン内を右クリックし、 Create Empty を選択します。 新しいGameObjectに NetworkManager という名前を付けます。
-
NetworkManager
GameObjectに NetworkManager コンポーネントを追加します。- Hierarchy で、 NetworkManager を選択します。
- Inspector 画面で Add Component をクリックします。
- 検索ボックスに「Network Manager」と入力し、選択して追加する。
- Network Transport の下にある Select transport... をクリックし、 LightshipNetcodeTransport を選択します。 これで、 Lightship Netcode Transport コンポーネントが自動的に追加されます。
-
次のように、 SharedSpaceManager コンポーネントを XROrigin に追加します。
-
Hierarchy のARシーンで、
XR Origin
を選択します。 -
Inspector 画面で Add Component をクリックします。
-
検索ボックスに「Shared Space Manager」と入力し、表示されたものを選択して
XR Origin
に追加します。 -
Shared Space Managerで、 Colocalization Type を Mock Colocalization に設定します。 VPS Colocalization、またはImage Tracking Colocalizationを使用する際は、必ず対応するColocalization Type(コロカライゼーションタイプ)に変更してください。
-
SharedSpaceManagerを使用してNetcodeセッションを開始する
SharedSpaceManager
を使用して、ユーザーが接続し、ネットワークセッションを開始できるように、シーンとコードを設定します。
SharedARのUIとマネージャーを設定するには、次の手順を行います。
-
Hierarchy**で、ARシーンの下で右クリックし、UIメニューを開き、Buttonを選択してボタンを追加します。 この手順を繰り返し、もう1つのボタンとテキストフィールドを追加します。 ボタンはホストとクライアントが参加するために使用し、テキストフィールドは接続状況の出力に使用します。 ボタンに
JoinAsHost
とJoinAsClient
、テキストフィールドにLocalizationStatusText
を設定します。 -
Hierarchy でARシーンのルートを右クリックし、 Create Empty を選択します。 新しいオブジェクトに
NetworkDemo
という名前を付けます。 -
Project ウィンドウの Assets フォルダで右クリックし、 Create メニューを開いて C# Script を選択します。 新しいスクリプトに
NetworkDemoManager.cs
という名前を付けます。NetworkDemoManager.cs
を開き、コードを以下のスニペットに置き換え、UI要素とSharedSpaceManager
を初期化します。
using Niantic.Lightship.SharedAR.Colocalization;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.UI;
public class NetworkDemoManager : MonoBehaviour
{
[SerializeField]
private Text _statusText;
[SerializeField]
private Button _joinAsHostButton;
[SerializeField]
private Button _joinAsClientButton;
[SerializeField]
private SharedSpaceManager _sharedSpaceManager;
}
void Start()
{
// We will fill this in later!
}
}