RandomMatchingReconnectサンプル

目次

  概要
  【Unity5.0.0以上】ライトの輝度の調整
  複数クライアント動作のための準備
  アプリケーションの作成
  複数クライアントで動作させてみる
  断線検知からの再接続処理


概要

「再接続処理付きのマッチメイキング」の完成サンプルです。

  本サンプルは、ドキュメントに記載されている「MUN クライアントの主要機能」にある、
  再接続処理 について RandomMatching サンプル に追加した完成サンプルです。

【Unity5.0.0以上】ライトの輝度の調整

Directional light for UnityChan の輝度を低くする

  Unity5 以降のバージョンを使っている場合、本サンプルを動作させる場合、SDUnityChanの輝度が高くなってしまいます。
  そのため、ライトの輝度を低くしましょう。

  project ビューから Assets/Monobit Unity Networking/Samples/Scenes/RandomMatchingReconnect/OfflineSceneReconnect.unity を
  ダブルクリックして開きます。
  hierarchy ビューから、「Directional light for UnityChan」を選択します。
  Inspector にある Light の項目内の「Intensity」について、2 から 1 に変更してください。
  同様に、project ビューから Assets/Monobit Unity Networking/Samples/Scenes/RandomMatchingReconnect/OnlineSceneReconnect.unity を
  ダブルクリックして開きます。
  以下のようなダイアログが表示されたら [] を選んでください。
  先ほどと同様に、hierarchy ビューから、「Directional light for UnityChan」を選択します。
  先ほどと同様に、Inspector にある Light の項目内の「Intensity」について、2 から 1 に変更してください。


複数クライアント動作のための準備

バックグラウンドでの動作を有効にする

  Unity のバージョンによっては「バックグラウンドでの動作」が無効になっている場合があり、
  その状態で複数クライアントを動かすと支障が出ます。
  実行バイナリを生成する前に、まずはその確認と、無効になっていた場合に有効にする手続きを行いましょう。

  Unity のメニューから Edit > Project Settings > Player を選択します。
  PlayerSettings の「Resolution and Presentation」内にある、「Run In Background」のチェックボックスが ON になっているか確認してください。
  もし、OFFになっていた場合には、チェックボックスを ON にします。


アプリケーションの作成

実行バイナリを生成する

  では改めて実行バイナリを生成しましょう。
  Unity のメニューから File > Build Settings... を選んでください。
  Build Settings ウィンドウ内の Scenes In Build に対し、以下のファイルを追加します。
     ・Assets/Monobit Unity Networking/Samples/Scenes/RandomMatchingReconnect/OfflineSceneReconnect.unity
     ・Assets/Monobit Unity Networking/Samples/Scenes/RandomMatchingReconnect/OnlineSceneReconnect.unity
  (上記ファイルを順番に、1つずつドラッグ&ドロップしてください。)
  Build Settings ウィンドウ内の右下にある [ Build ] のボタンを押します。
  ファイル名を RandomMatchingReconnect.exe として保存します。
  しばらく待つと、新規ファイル RandomMatchingReconnect.exe が出来上がります。


複数クライアントで動作させてみる

実行バイナリとUnityエディタの両方を使って、マルチプレイ動作確認を行なう

  RandomMatching.exe を実行すると、以下の画面が出現します。
  お使いのディスプレイ解像度よりも低いスクリーンサイズで、かつウィンドウモードを有効にした状態で、[ Play! ]ボタンを押してください。
  一方で、Unityエディタ上の実行ボタンも押します。
  実行バイナリ、Unityエディタともに以下のような画面に切り替わります。
  テキストボックスとボタンが3つ表示されます。
テキストボックス ルーム名を入力します。デフォルトで「roomName」としています。
Create Room ボタン 上記テキストボックスで入力したルーム名で、ルームを作成します。
Join Room ボタン 現在作成済みの、入室可能なルームの中から、ランダムで選択して入室します。(ランダムマッチング)
  実行バイナリ、Unityエディタのいずれか一方で、任意の名前でルームを作成してみましょう。
  すると、もう一方で、作成したルームのルーム名と同名のボタンが現れます。
  このボタンを押すことで、該当するルームに入室することも可能です。(ルーム選択型のプレイヤーマッチング)
  また、Join Room ボタンでは、現時点で存在するルームの中からランダムに入室します。(ランダムマッチング)
  ルームを作成・入室すると、以下のような表示がなされます。
     ・ 自身のプレイヤー ID, ルーム名, 現在のルームの人数, ルーム入室の許可/拒否設定が表示されます。
     ・ Leave Room ボタンで、ルームから退室することが出来ます。
     ・ (ホストのみ) Start Game ボタンでゲームを開始することが出来ます。
  確認を終えたところで、Start Game ボタンを押してみましょう。
  カーソルキーでSDユニティちゃんを動かすことができます。オブジェクトの位置・姿勢・アニメーション同期も取れていますね。
  (スクリーンショットの都合で値が違っていますが、制限時間(Rest Frame)も同期しています。)


断線検知からの再接続処理

断線検知には2台のPC(もしくはUnityクライアントが動作できる、2台の環境)が必要です

  断線検知をするためには、最低2台のPCが必要です。
  (もっとも、「ルーム内の誰か1人でもルームにいる状態を作る」ことができれば良いので、一方の端末が Android端末やiOS端末でも良いのですが)

  少々リッチ環境でないと試せないと思いますが、断線検知からの再接続にもサポートしています。

断線検知画面

  断線を検知すると、以下のようなポップアップウィンドウが表示されます。
  「Yes」を選択すると、再接続し、切断前の状況から再開できます。
  「No」を選択すると、切断し、最初の画面に戻ります。