前回はサンプルを動かすところまでを確認しました。(前の記事はこちら!)
今回は中身のスクリプトをひも解きながら、サーバ接続の基本について学びたいと思います。
##今回やりたいこと
- サーバに接続する
- ルームを作成&入室する
以上をGUI表示でするところまでおこないます。
##はじめに注意すること
GameObjectに対してモノビットエンジンのメソッドを使いたいときは、
以下の2点が条件です。これ忘れずに。
- MonobitEngine.Monobehaviourを継承
- MonovitView.csのアタッチ
// namespaceを宣言
using MonobitEngine;
// MonobitEngine.Monobehaviourを継承する
public class SampleClass : MonobitEngine.MonoBehaviour
##サーバに接続する
// デフォルトロビーへ自動入室を許可する
MonobitNetwork.autoJoinLobby = true;
// MUNサーバに接続する
MonobitNetwork.ConnectServer("v1.0");
####ロビーとは?
ルームに入るまえの待合場所。
たとえば、ロビーごとにレベル制限を設けておき、レイドバトルの時にレベルが低い人はルームに入れさせないことが可能だったりする。
####デフォルトロビーとは?
自動的に放り込まれる待合場所。
「ご新規の方はこちらでお待ちくださいねー」的な感じ。
MonobitNetwork.autoJoinLobby = true;
サーバに入ったとき自動的にデフォルトロビーに通す設定。
falseにする場合、ロビー入室処理をべつに書く必要がある。
参考リンク
MonobitNetwork.ConnectServer("v1.0")
サーバーに対して"つなぎたい"という要求を送信するメソッド。
要求が受理されるとtrue、無効だとfalseがかえってくる。
trueがかえってくるまでこのメソッドを呼び続けて、ロビー入室処理に進まないようにするのがベストらしい。
つなぎたいサーバのバージョンを指定している。文字列はhogeでもfugaでも何でもいい。
たとえば、v1.0→v1.1へバージョンアップをしたときなどに、前のバージョンの住人とマッチングさせたくないときに使える。
参考リンク
##ルームを作成&入室する
// MUNサーバに接続しているとき
if (MonobitNetwork.isConnect)
{
// ルームにまだ入室していないとき
if(!MonobitNetwork.inRoom)
{
// ルーム名
string roomName = "";
// ルーム名の入力
GUILayout.BeginHorizontal();
GUILayout.Label("RoomName : ");
roomName = GUILayout.TextField(roomName, GUILayout.Width(200));
GUILayout.EndHorizontal();
// ルームを作成
if (GUILayout.Button("Create Room", GUILayout.Width(100)))
{
MonobitNetwork.CreateRoom(roomName);
}
}
}
####ルームとは?
ロビーに紐づいた部屋。
ロビーには複数のルームがあってもよい。
MonobitNetwork.CreateRoom(roomName);
ルームを作成して入室するメソッド。
引数なしだと最大人数無制限、入室可で公開されたルームを作成する。
引数ありで人数制限、公開非公開、入室許可などの設定ができる。
参考リンク
##最後に
サーバ接続の基本的な方法のメモになりましたが今回はここまで。