Edited at

モノビットエンジンでかんたんサーバ接続

前回はサンプルを動かすところまでを確認しました。(前の記事はこちら!)

今回は中身のスクリプトをひも解きながら、サーバ接続の基本について学びたいと思います。


今回やりたいこと


  1. サーバに接続する

  2. ルームを作成&入室する

以上をGUI表示でするところまでおこないます。


はじめに注意すること

GameObjectに対してモノビットエンジンのメソッドを使いたいときは、

以下の2点が条件です。これ忘れずに。


  • MonobitEngine.Monobehaviourを継承

  • MonovitView.csのアタッチ


Sample,cs

// namespaceを宣言

using MonobitEngine;
// MonobitEngine.Monobehaviourを継承する
public class SampleClass : MonobitEngine.MonoBehaviour

image01.PNG


サーバに接続する


NetworkConnectionSample.cs

// デフォルトロビーへ自動入室を許可する

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へバージョンアップをしたときなどに、前のバージョンの住人とマッチングさせたくないときに使える。

参考リンク


ルームを作成&入室する


NetworkConnectionSample.cs

// 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);

ルームを作成して入室するメソッド。

引数なしだと最大人数無制限、入室可で公開されたルームを作成する。

引数ありで人数制限、公開非公開、入室許可などの設定ができる。

参考リンク


最後に

サーバ接続の基本的な方法のメモになりましたが今回はここまで。