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 のバージョンに合わせて、以下のいずれかを選択してビルドしてください。
複数クライアントで動作させてみる▲
実行バイナリと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)も同期しています。)
