ルームへの入室
目次
概要
事前設定
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");
接続コールバック▲
ルームに入室した際にコールバックされるメソッド
このメソッドの実行結果に応じて、以下の接続コールバックが呼び出されます。
(接続コールバックについては こちら を参照してください。)