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