重要: UNet は非推奨のソリューションになり、現在、新しい Multiplayer とネットワーキングソリューション (Netcode for GameObjects) が開発中です。詳細は、GameObjects Web サイトの Unity Netcode を参照してください。 |
マッチメーカーモードでは、プレイヤーが Unity のマルチプレイヤーサービスでホストされるマッチを作成し、検索、参加できるようにする簡単なインターフェースを提供します。
「マッチ」 (ゲームセッションやゲームインスタンスとも呼ばれます) は、Unity の Multiplayer Service でホストされるゲームの一意のインスタンスです。Unity のマルチプレイヤーサービスでは、ある限られた数のプレイヤーが一緒に参加してプレイすることができます。多くの人がゲームをプレイしている場合は、1 つのゲームに複数のマッチが存在し、それぞれのマッチで複数のプレイヤーが一緒にプレイしていることもあります。
マッチメーカーモードを使用するには、まずプロジェクトで Unity Multiplayer Service を有効にする必要があります。Unity Multiplayer Service を有効にしたら、マッチメーカーモードで HUD を使用して、インターネットでホストされているゲームのインスタンス (「マッチ」または「セッション」とも呼ばれます) を作成したり接続することが可能です。
Create Internet Match をクリックすると新しいマッチを始めます。Unity の Multiplayer Service はゲームの新しいインスタンス (マッチ) を作成します。他のプレイヤーがこれを検索し参加できます。
Unity Multiplayer Service にリクエストを送信するには Find Internet Match をクリックしてください。Unity Multiplayer Service は、このゲームに現在、存在している全マッチのリストを返します。
例えば、プレイヤー 2 人が接続し、それぞれ「Match A」と「Match B」という名前のマッチを作成して、別の3 人目のプレイヤーが接続して Find Internet Match ボタンを押すと、Match A と Match B が参加可能なマッチとして表示されます。
Network Manager HUD では、参加可能な対戦は「Join Match: マッチ名」というラベルの付いた一連のボタンとして表示されます (マッチ名 はマッチを作成したプレイヤーがつけた名前です)。
参加可能なマッチに参加するには、参加したいマッチの「Join Match: マッチ名」ボタンをクリックします。または、Back to Match Menu をクリックして、マッチメーカーメニューに戻ります。
HUD を独自の UI に置き換えると、参加可能なマッチの一覧を表示するのにより良い方法を利用できます。多くのマルチプレイヤーゲームは、スクロール可能なリストに参加可能なマッチを表示します。ゲームに異なるマッチモード (「Capture The Flag (CTF)」、「1 対 1」、「協力」など) を設けようとする場合は、リストの各エントリーにマッチ名、現在のプレイヤー数、最大プレイヤー数、マッチモードタイプなどその他の情報を表示すると良いでしょう。
ノート: Network Manager HUD の参加可能マッチのリストで、マッチ名に使用されると表示が変更されてしまう特殊文字がいくつかあります。これらの文字は以下のとおりです。
開き角かっこ: [
パーセント記号: %
アンダースコア: _
マッチ名にこれらの文字が含まれると、その文字は参加可能マッチのリスト内で角かっこで囲まれます。そのため、「my_game」という名前のマッチは「my[_]game」と表示されます。
このボタンは Unity エンジニアによる内部使用 (Multiplayer Service のテスト) のために設計されています。Network Manager の MatchMaker Host URI フィールドに、「ローカル」、「ステージング」、「インターネット」の 3 つの定義済み URL のうちの 1つを割り当てるボタンが表示されます。ただし、ローカルとステージングのオプションは、Uniyt エンジニアによる内部使用のみを目的としており、一般的な使用を目的としていません。
ローカル、または、ステージングのオプションを選択すると、ゲームは Unity Multiuser Service に接続できません。ですから、このオプションが「インターネット」 (デフォルト) に設定されていることを必ず確認してください。
これは、現在のマッチメーカー URI (Uniform Resource Identifier、識別に使用される文字列) を表示します。インスペクターで URI を表示するには、Network Manager コンポーネントに移動して MatchMaker Host URI フィールドを確認します。デフォルトでは、これはグローバルな Unity Multiplayer Service を指しており、通常の Unity Multiplayer Service を使用しているマルチプレイヤーゲームを指しています。これを変更する必要はありません。Unity Multiplayer Service はゲームのプレイヤーを世界中の地域サーバーに自動的にグループ分けします。このグループ化は、同じ地域のプレイヤー間でマルチプレイヤーの応答の速さを保つ働きをします。つまり、それはヨーロッパ、アメリカ、アジアからのプレイヤーは、通常、世界の同じ地域のプレイヤーと対戦することを意味します。
ゲームがどの地域サーバーに接続するかを明示的に制御したい場合は、スクリプトを通してこの値をオーバーライドします。詳しい情報と地域サーバーの URI は、NetworkMatch.baseUri を参照してください。
例えば、プレイヤーが属している地域外のサーバーに接続するオプションを与えたい場合、URI をオーバーライドすることが必要になる場合があります。米国の「プレイヤー A」が、ヨーロッパの「プレイヤー B」によって Matchmaker で作成されたマッチに接続したい場合、ゲームで地域を設定できるようにすることが必要です。そのため、そのような選択を可能にする UI 機能を作成する必要があるでしょう。
注意: Network Manager HUD 機能は開発のための一時的なツールです。マルチプレイヤーゲームの開発を素早く始めるのに役立ちますが、準備が整ったときに独自の UI 制御に換える必要があります。