NumericMatchingサンプル

目次

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


概要

「プレイヤー固有値をベースとした範囲検索マッチング処理」のサンプルです。

  本サンプルは、SQL検索の応用として、プレイヤー固有値(レベル/スキル等)をベースとした、
  範囲検索マッチング処理のサンプルです。


ライトの輝度の調整

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

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

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

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



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


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

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

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

NumericValue を設定し、ルームを作成する

  一方のクライアント側でルームを作成します。
  ルームを作成する前に、「Your Numeric Value(0-100) :」に書かれた項目の右隣にある場所に、0~100の範囲で数値を入力します。
  今回は試しに「30」と入力してみましょう。
  入力したら、Create Room ボタンを押してみます。
  CreateRoom ボタンを押すと、以下の画面に切り替わります。

NumericValueをベースにしたルーム検索を行なう

  もう一方のクライアントで、NumericValue をベースにしたルーム検索を行ないます。
  もう一方のクライアント側でも「Your Numeric Value(0-100)」と書かれた項目の右隣にあるテキストボックスに 0~100 までの任意のパラメータを入力します。
  今回は試しに 50 と入力してみましょう。
  入力したら Join Room ボタンを押しましょう。
  すると、入力した値をベースに検索閾値を広げ、最も近い NumericValue を持つ作成者のルームに対し、ランダム入室します。
  今回の事例では1つしか部屋がありませんので、これが複数部屋があった場合、最も近い NumericValue を1部屋選択して入室します。
  2つ目のルーム作成者、あるいは2人目以降のルーム入室者のクライアント側では Enter Another Room ボタンがあります。
  このボタンを入力すると、既存のルームを再検索し、別のルームに入室することが可能です。

ゲームをスタートする

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