ネットワークARセッションのセットアップ
近くにいるプレイヤーを同一のAR体験に参加させる。
ARNetworkingセッションの概要
複数のプレイヤーが同一のAR世界でインタラクトできるようにするには、各デバイスで動作する ARSessions の情報を共有する必要があります。プレイヤー同士がその情報を送受信するための接続は、各デバイス上のMultipeerNetworkingインスタンスによって処理されます。同様に、処理された情報は、各デバイスのARNetworkingインスタンスによって処理されます。
ARNetworking
セッションは、ARNetworkingFactoryクラスで構築されます。
using Niantic.ARDK.AR.Networking; // Create an ARNetworking session. // This also creates new ARSession and MultipeerNetworking objects, // since they are required components of ARNetworking. var arNetworking = ARNetworkingFactory.Create();
また、ARNetworking
セッションは、既存の ARSession
インスタンスまたは MultipeerNetworking
インスタンスを使用して構築することもできます。
たとえば、アプリケーションにロビーが設定されているとします。ロビーでは、MulitpeerNetworking
セッションに接続しているプレイヤーは、共有AR体験が開始するまでの間、メッセージのやり取りを行うことができます。プレイヤーはピアIDに基づいて色でラベル付けされるため、プレイヤーが共有AR体験を開始する際、ピアIDが変わらないようにする必要があります。そのためには、その MulitpeerNetworking
セッションをもとに ARNetworking
セッションを開始します。これにより、プレイヤーは、切断して新しいセッションに接続し直す必要がありません。
using Niantic.ARDK.Networking; using System.Text; var networking = MultipeerNetworkingFactory.Create(); // Can join either before or after creating an ARNetworking var sessionIdentifier = Encoding.UTF8.GetBytes("Example"); networking.Join(sessionIdentifier); // The ARSession and MultipeerNetworking objects used to create an ARNetworking // need to have the same stage identifier, so specify the stage identifier for // the ARSession constructed here. var arSession = ARSessionFactory.Create(networking.StageIdentifier); var arNetworking = ARNetworkingFactory.Create(arSession, networking);
ホストとピア
ネットワークセッションは、ホスト と**ピア** クライアントの概念を使用します。クライアントが指定されたセッションIDを使用して参加リクエストを送信すると、サーバーは次のいずれかを行います。
クライアントをセッションに追加します(セッションが存在する場合)。これで、クライアントはセッションのピアに設定されます。
セッションを作成し、クライアントをホストとして指定します。
その後、同一セッションに参加するクライアントには、どのクライアントがホストであるか通知されます。
ARDKの共有ネットワークセッションに参加する場合は、クライアントごとに同一のAPIトークンを使用するように設定する必要があります。