ドキュメント

サポート

Relay

Relay

QoS (Quality of Service)

Use Quality of Service measurements to automatically select the best Relay region for your players.
読み終わるまでの所要時間 1 分最終更新 1ヶ月前

Relay の QoS (Quality of Service) 機能では、ターゲット地域を選択せずに NetworkDriver をホストプレイヤーとして起動する ことで、QoS データに基づいて自動的に地域を選択できます。 地域を指定せずに割り当てリクエストを作成すると、割り当てサービスは QoS データを使用して、各地域とホスト間の接続品質に基づいた最適な利用可能地域を選択します。Relay は待ち時間とパケットロスの両方を考慮します。以下のサンプルコードを参照してください。
// Launch this method as a coroutineprivate IEnumerator StartRelayServer(){ // Request an allocation to the Relay service without a target region var relayMaxPlayers = 5; var allocationTask = RelayService.Instance.CreateAllocationAsync(relayMaxPlayers); while(!allocationTask.IsCompleted) { yield return null; } if (allocationTask.IsFaulted) { Debug.LogError("Create allocation request failed"); yield break; } var allocation = allocationTask.Result; // Request the join code to the Relay service var joinCodeTask = RelayService.Instance.GetJoinCodeAsync(allocation.AllocationId); while(!joinCodeTask.IsCompleted) { yield return null; } if (joinCodeTask.IsFaulted) { Debug.LogError("Create join code request failed"); yield break; } // Get the Join Code, you can then share it with the clients so they can join JoinCode = joinCodeTask.Result; // Format the server data, based on desired connectionType var relayServerData = HostRelayData(allocation, "dtls"); // Create the network parameters using the Relay server data var relayNetworkParameter = new RelayNetworkParameter{ ServerData = relayServerData }; // Bind and listen to the Relay server yield return ServerBindAndListen(relayNetworkParameter);}
以下の図は、Relay がホストプレイヤークライアントと利用可能地域間の QoS データに基づいて地域をどのように選択するかを示したものです。QoS サーバーを見つけられない場合や、測定データを収集できない場合、Relay はクライアントの位置情報を使用して最寄りの地域を選択します。クライアントの位置情報が特定できない場合、これはデフォルトの地域である Central US になります。