ルームへの入室

目次

  概要
  事前設定
  MonobitEngine.MonobitNetwork.JoinRoom メソッド
  MonobitEngine.MonobitNetwork.JoinOrCreateRoom メソッド
  MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド(1)
  MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド(2)
  MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド(3)
  接続コールバック


概要

マルチプレイを行なうためのルームに入室する

  MUNサーバ上に作成されたルームに対して入室します。

  ルームにつきましては こちら を御覧ください。


事前設定

MUNサーバに接続している必要があります。ロビーに入室している必要はありません。

  ルームはロビーに紐づけられますが、必ずしもロビーに入室している必要はありません。

  ただし、一部機能において「ロビーに入室しているかどうか」「どのロビーに入室しているか」によって
  各種入室処理の挙動が異なりますのでご注意ください。(詳細につきましては各種メソッドの機能をご覧ください。)


MonobitEngine.MonobitNetwork.JoinRoom メソッド

機能

  指定した名前でルーム名を検索し、一致するルームに入室します。

  この時、ルーム名の検索対象となるのは「自身が入室しているロビーに所属しているルーム」です。
  自身が入室していないロビーに所属しているルームは、同一名のルームであったとしても、ルーム名の検索対象にはなりません。
  また、自身がロビーに所属していない場合には、「デフォルトロビーに所属しているルーム」を検索対象とします。

引数

変数名 内容
string roomName 入室するルームの名前を指定します。

戻り値

内容
bool 入室に成功したら true、失敗したら false を返します。

記述例

// "roomName"をルーム名に持つルームに入室します。
MonobitEngine.MonobitNetwork.JoinRoom("roomName");


MonobitEngine.MonobitNetwork.JoinOrCreateRoom メソッド

機能

  指定したロビーに、指定した名前、ルームオプションを適用したルームを検索します。
  もし入室するルームが見つからなかった場合、指定された引数をもとにルームを作成します。

  このメソッドを使って入室する際、ルーム名の検索対象となるのは「指定したロビーに所属しているルーム」です。
  それ以外のロビーに同一名のルームがあったとしても、ルーム名の検索対象にはなりません。
  なお例外として、指定したロビー情報が null であった場合、「デフォルトロビーに所属しているルーム」を検索対象とします。

引数

変数名 内容
string roomName 検索・作成するルームの名前を指定します。
MonobitEngine.RoomSettings roomSettings 作成するルームのプロパティを指定します。
MonobitEngine.RoomSettings では以下のパラメータを設定可能です。
変数名 内容
byte maxPlayers そのルームに入室可能な最大人数を設定します。
bool isVisible そのルームを公開するかどうかを設定します。
true であれば公開ルーム、falseであれば非公開ルームです。
公開されたルームは MonobitEngine.MonobitNetwork.GetRoomData() を用いた一覧取得が可能です。
bool isOpen そのルームに入室可能かどうかを設定します。
true であれば入室可、falseであれば入室不可です。
Hashtable customRoomParameters そのルームのカスタムパラメータを設定します。
string[] customRoomParametersForLobby そのルームのカスタムパラメータのうち、ロビーに通知するためのカスタムパラメータキーを設定します。
MonobitEngine.LobbyInfo lobbyInfo ルームを作成する先のロビー情報を指定します。
null を指定した場合、デフォルトロビーに作成されます。
MonobitEngine.LobbyInfo では以下のパラメータを設定可能です。
変数名 内容
string Name そのロビーの名称を設定します。
MonobitEngine.LobbyKind Kind 以下の定数値で示される、ロビーの種類 を設定します。
定数値 内容
LobbyKind.Default 通常のロビー
LobbyKind.Query ルームのクエリー検索に対応したロビー
LobbyKind.Random ルームのランダム検索に対応したロビー

戻り値

内容
bool 入室に成功したら true、失敗したら false を返します。

記述例

// ルームの最大人数を10人、公開で入室可能な新規ルーム"roomName"を、通常のロビー名「lobbyName」から検索します。
// 見つからなければ、上記設定のルームを作成し、入室します。
MonobitEngine.RoomSettings settings = new MonobitEngine.RoomSettings();
settings.maxPlayers = 10;
settings.isVisible = true;
settings.isOpen = true;
MonobitEngine.LobbyInfo lobby = new MonobitEngine.LobbyInfo();
lobby.Kind = LobbyKind.Default;
lobby.Name = "LobbyName";
MonobitEngine.MonobitNetwork.JoinOrCreateRoom("roomName", settings, lobby);


MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド(1)

機能

  公開設定・非満員・入室可になっているルームの中から、ランダムに選定したルームに入室します。

  この時、ランダム選定の対象となるのは「自身が入室しているロビーに所属しているルーム」です。
  自身が入室していないロビーに所属しているルームに対してはランダム選定の対象にはなりません。
  また、自身がロビーに所属していない場合には、「デフォルトロビーに所属しているルーム」をランダム選定対象とします。

引数

変数名 内容
- - -

戻り値

内容
bool 入室に成功したら true、失敗したら false を返します。

記述例

// 入室可能なルームの中からランダムに選定して入室します。
MonobitEngine.MonobitNetwork.JoinRandomRoom();


MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド(2)

機能

  公開設定・非満員・入室可になっているルームの中から、指定されたカスタムプロパティと
  ルーム収容最大人数を設定している、いずれかのルームを選定して入室します。

  この時、ランダム選定の対象となるのは「自身が入室しているロビーに所属しているルーム」です。
  自身が入室していないロビーに所属しているルームに対してはランダム選定の対象にはなりません。
  また、自身がロビーに所属していない場合には、「デフォルトロビーに所属しているルーム」をランダム選定対象とします。

  これを用いたルーム選定方法の実例について、 マッチメイキング > ルームフィルタ の項目もご覧ください。

引数

変数名 内容
Hashtable expectedCustomRoomProperties 検索用のカスタムルームプロパティのフィルター。
ルームに設定されている一致する項目がある場合、そのルームを選択します。
Hashtable の中身が空である場合、ルームプロパティによる選定はなされません。
byte expectedMaxPlayers 検索用のルーム収容最大人数のフィルター。
ルームの収容人数が指定されている場合、この値と一致していれば、そのルームを選択します。
この値が 0 である場合、ルーム収容最大人数の設定値による選定はなされません。

戻り値

内容
bool 入室に成功したら true、失敗したら false を返します。

記述例

// 指定したルームプロパティに一致するルームの中から、ランダムに選定したルームに入室します。
Hashtable properties = new Hashtable() { { "password", "ABCDEF" } };
MonobitEngine.MonobitNetwork.JoinRandomRoom(properties, 10);


MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド(3)

機能

  公開設定・非満員・入室可になっているルームの中から、
  指定されたカスタムプロパティ・マッチメイキングタイプ・検索対象ロビー・SQL-WHEREに一致する、いずれかのルームを選定して入室します。

  この時、選定の対象となるのは「指定した検索対象ロビーに所属しているルーム」です。
  それ以外のロビーに所属するルームに対しては、選定の対象にはなりません。
  なお例外として、指定したロビー情報が null であった場合、「デフォルトロビーに所属しているルーム」を選定対象とします。

  これを用いたルーム選定方法の実例について、 マッチメイキング > クエリー検索マッチング の項目もご覧ください。

引数

変数名 内容
Hashtable expectedCustomRoomProperties 検索用のカスタムルームプロパティのフィルター。
ルームに設定されている一致する項目がある場合、そのルームを選択します。
Hashtable の中身が空である場合、ルームプロパティによる選定はなされません。
byte expectedMaxPlayers 検索用のルーム収容最大人数のフィルター。
ルームの収容人数が指定されている場合、この値と一致していれば、そのルームを選択します。
この値が 0 である場合、ルーム収容最大人数の設定値による選定はなされません。
MonobitEngine.Definisions.
 MatchmakingMode
matchingType マッチメイキングルールのためのフィルター。
条件を満たすルームが複数ある場合、以下の定数値により選定条件が異なります。
定数値 内容
MatchMakingMode.FillRoom ルーム作成時刻が最も古いルームから順番に選定します(デフォルト設定)。
MatchMakingMode.SerialMatching 一致検索&範囲検索を満たす、ルーム作成時刻が最も古い
ルームから順番に選定します。
MatchMakingMode.RandomMatching 一致検索&範囲検索を満たすルームから、ランダムに選定します。
MonobitEngine.LobbyInfo lobbyInfo 入室するルームが所属するロビー情報を指定します。
null を指定した場合、デフォルトロビーに所属するルームから検索します。
MonobitEngine.LobbyInfo では以下のパラメータを設定可能です。
変数名 内容
string Name そのロビーの名称を設定します。
MonobitEngine.LobbyKind Kind 以下の定数値で示される、ロビーの種類 を設定します。
定数値 内容
LobbyKind.Default 通常のロビー
LobbyKind.Query ルームのクエリー検索に対応したロビー
LobbyKind.Random ルームのランダム検索に対応したロビー
string sqlLobbyFilter SQLロビーのための、WHEREフィルターとなる文字列。

戻り値

内容
bool 入室に成功したら true、失敗したら false を返します。

記述例

// SQLロビー"sqlLobby"に紐づけられた、"level == 0" であるルームの中から、ランダムに選定し入室する。
MonobitEngine.LobbyInfo lobby = new MonobitEngine.LobbyInfo();
lobby.Kind = LobbyKind.SqlLobby;
lobby.Name = "sqlLobby";
MonobitEngine.MonobitNetwork.JoinRandomRoom(null, 10, MatchiMakingMode.FillRoom, lobby, "level == 0");


接続コールバック

ルームに入室した際にコールバックされるメソッド

  このメソッドの実行結果に応じて、以下の接続コールバックが呼び出されます。
  (接続コールバックについては こちら を参照してください。)
OnJoinedRoom メソッド ルームの入室に成功した際に呼び出されます。
OnJoinRoomFailed メソッド ルームの入室に失敗した際に呼び出されます。