注意 UNet は非推奨となり、今後 Unity から削除される予定です。新しいシステムが開発中です。詳細は ブログ と FAQ を参照してください。 |
マッチメーカーモードでは、プレイヤーが 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 制御に換える必要があります。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.