SearchPlayerサンプル

目次

  概要
  ライトの輝度の調整
  複数クライアント動作のための準備
  アプリケーションの作成
  複数クライアントで動作させてみる


概要

「プレイヤー検索を伴うマッチング処理」のサンプルです。

  本サンプルは、プレイヤー名検索を伴うマッチング処理のサンプルです。


ライトの輝度の調整

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

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

  project ビューから Assets/Monobit Unity Networking/Samples/Scenes/SearchPlayer/SearchPlayer.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/SearchPlayer/SearchPlayer.unity を追加します。
  (他に登録されているシーンファイルがある場合、SceneInBuild 内のチェックボックスで外すか、SceneInBuild 内のリストから削除してください)
  Build Settings ウィンドウ内の右下にある [ Build ] のボタンを押します。
  ここでビルドしますが、ビルド方法が Unity2018.2 以前と Unity2018.3 以降で異なりますので、
  お使いの Unity のバージョンに合わせて、以下のいずれかを選択してビルドしてください。

  ファイル名を SearchPlayer.exe として保存します。
  しばらく待つと、新規ファイル SearchPlayer.exe が出来上がります。



  まず「新しいフォルダー」をクリックし、新規フォルダを作成します。
  新規に作成したフォルダーに名前を付けます。ここでは「SearchPlayer」としましょう。
  フォルダに「SearchPlayer」が選択された状態で、[フォルダーの選択] ボタンを押下します。
  ボタンを押すとビルドが開始され、さらにしばらく待つと、先ほど作成した SearchPlayer フォルダ内に「MUN_TEST.exe」が作成されます。


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

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

  実行バイナリをダブルクリックすると、以下の画面が出現します。
  お使いのディスプレイ解像度よりも低いスクリーンサイズで、かつウィンドウモードを有効にした状態で、[ Play! ]ボタンを押してください。
  一方で、Unityエディタ上の実行ボタンも押します。
  実行バイナリ、Unityエディタともに以下のような画面に切り替わります。

プレイヤー名を設定し入室する

  一方のクライアント側でプレイヤー名を設定してルームに入室します。
  まずは「Your Name : 」と書かれたラベルの右隣にあるテキストボックスにプレイヤー名を入力し、Connect Server ボタンを押します。
  今回は試しに「aaa」と入力してみましょう。
  Connect Server ボタンを押すと以下の画面に切り替わりますので、そのまま Create Room ボタンを押します。
  Create Room ボタンを押すと、以下の画面に切り替わります。

プレイヤー名検索を利用したルーム検索を行なう

  もう一方のクライアントで、プレイヤー名検索を利用したルーム検索を行ないます。
  もう一方のクライアント側でも「Your Name : 」と書かれたラベルの右隣にあるテキストボックスにプレイヤー名を入力し、Connect Server ボタンを押します。
  もう一方のクライアントのプレイヤー名は「bbb」にしてみましょう。
  Connect Server ボタンを入力したら、今度は Search Player の「Player Name:」の項目にあるテキストボックスに対し、検索対象となるプレイヤー名を入力します。
  先ほど、一方のクライアントのプレイヤー名を「aaa」にしていましたので、「aaa」で検索します。
  入力したら、Search ボタンを押します。
  Search ボタンを押すと、そのプレイヤーについて以下のような表示がなされます。

    ① 該当するプレイヤーがサーバ(ロビー)内に存在しない場合 … <プレイヤー名> is offline. と表示される。
    ② 該当するプレイヤーがサーバ(ロビー)内に存在していて、ルームに未入室の場合 … <プレイヤー名> is out of room. と表示される。
    ③ 該当するプレイヤーがサーバ(ロビー)内に存在していて、ルームに入室している場合 … <プレイヤー名> is in <ルーム名> と表示され、Joinボタンが表示される。

  プレイヤー aaa は ③ に該当しますので、aaa is in aaa と表示され、Joinボタンが表示されますので、Join ボタンを押してみましょう。
  Join ボタンを押すと、検索したプレイヤーと同じルームに入室することが出来ます。

ゲームをスタートする

  ゲームをスタートするには「Start Game」ボタンを押します。
  カーソルキーでSDユニティちゃんを動かすことができます。オブジェクトの位置・姿勢・アニメーション同期も取れています。
  (スクリーンショットの都合で値が違っていますが、制限時間(Rest Frame)も同期しています。)