ルームカスタムパラメータ
目次
概要
事前設定
MonobitEngine.RoomSettings.customRoomParameters プロパティ
MonobitEngine.RoomSettings.customRoomParametersForLobby プロパティ
MonobitEngine.MonobitNetwork.room.SetCustomParameters メソッド
【応用例】カスタムルームパラメータを使用したルーム作成
【応用例】カスタムルームパラメータを使用したルーム一致検索
【応用例】カスタムルームパラメータを使用したクエリー範囲検索
ルームに設定可能な任意の情報群
ルームカスタムパラメータは、ルームの標準パラメータとは別に、ルームに対し任意に設定可能な情報群です。
ルーム検索ワードとして利用したり、ルーム招待文などの任意の付加情報として活用することができます。
事前設定▲
MonobitEngine.RoomSetting による設定はルームに入室前に行なうこと
このページでも解説いたしますが、MonobitEngine.RoomSettings によるルームカスタムパラメータの設定は、ルーム入室前のみ有効です。
ルーム入室後については MonobitEngine.MonobitNetwork.room.SetCustomParameters メソッドを使用してください。
ルーム入室後のルームカスタムパラメータの変更は MonobitEngine.MonobitNetwork.room.SetCustomParameters
メソッドを使うこと
ルーム入室後については、MonobitEngine.MonobitNetwork.room.SetCustomParameters メソッドを使用してください。
似たような設定項目に MonobitEngine.MonobitNetwork.room.customParameters プロパティがありますが、こちらは読み取り専用となっていますので、設定できません。
また、MonobitEngine.MonobitNetwork.room.parametersListedInLobby プロパティも読み取り専用で、
ロビー公開用ルームカスタムパラメータの設定はルーム入室前のみ有効です。ご注意ください。
MonobitEngine.RoomSettings.customRoomParameters プロパティ▲
機能
MonobitEngine.MonobitNetwork.CreateRoom メソッド等を使い作成するルームの、ルームカスタムパラメータを設定します。
入出力型
型 |
内容 |
Hashtable |
ルームカスタムパラメータについて、そのハッシュテーブル(KeyおよびValue)を設定します。 |
記述例
// ルームカスタムパラメータの Key および Value を設定します。
MonobitEngine.RoomSettings settings = new MonobitEngine.RoomSettings();
settings.customRoomParameters["username"] = "MUN";
settings.customRoomParameters["password"] = "monobit";
MonobitEngine.RoomSettings.customRoomParametersForLobby プロパティ▲
機能
作成したルームカスタムパラメータ情報のうち、ロビー内ユーザーに通知するパラメータキーを設定します。
通知されたパラメータキーを使って、ロビー内ユーザー側から MonobitEngine.MonobitNetwork.JoinRandomRoom メソッドでのルーム内検索を可能とします。
出力型
型 |
内容 |
string[] |
ルームカスタムパラメータについて、ロビー内ユーザーに通知するパラメータキーを文字列配列として設定します。
MonobitEngine.RoomSettings.customRoomParameters.Keys 情報内に含まれているKeyである必要があります。 |
記述例
// ルームカスタムパラメータのうち、"username"と"password"をロビー内ユーザーに通知します。
MonobitEngine.RoomSettings settings = new MonobitEngine.RoomSettings();
settings.customRoomParametersForLobby = new string[] { "username", "password" };
MonobitEngine.MonobitNetwork.room.SetCustomParameters メソッド▲
機能
現在入室しているルームのカスタムパラメータについて変更を加えます。
変更可能なものはあくまでカスタムパラメータ本体であり、ロビー内ユーザーに通知できるカスタムパラメータの種類の変更はできません。
引数
型 |
変数名 |
内容 |
Hashtable |
parametersToSet |
更新・設定・同期するカスタムパラメータのハッシュテーブルを設定します。 |
Hashtable |
expectedValues |
このパラメータは将来の拡張のため用意されています。
現時点ではnullを設定してください。(省略可能で、その場合にはnullが設定されます) |
bool |
webForward |
このパラメータは将来の拡張のために用意されています。
現時点ではfalseを設定してください。(省略可能で、その場合にはfalseが設定されます) |
戻り値
記述例
// ルーム入室中にカスタムパラメータ"password"を更新します。
if( MonobitEngine.MonobitNetwork.inRoom )
{
Hashtable customParams = new Hashtable();
customParams["password"] = "monobitengine";
MonobitEngine.MonobitNetwork.room.SetCustomParameters( customParams );
}
【応用例】カスタムルームパラメータを使用したルーム作成▲
MonobitEngine.MonobitNetwork.CreateRoom メソッド実行時にカスタムルームパラメータを適用する
以下のように実行すると、ルーム生成時にカスタムルームパラメータを設定することが出来ます。
// ルーム作成時に使用するカスタムルームパラメータを定義
MonobitEngine.RoomSettings settings = new MonobitEngine.RoomSettings();
settings.customRoomParameters["username"] = "MUN";
settings.customRoomParameters["password"] = "monobit";
settings.customRoomParameters["version"] = 1.0;
settings.customRoomParametersForLobby = new string[] { "username", "password", "version" };
// ルーム名を「RoomName」としてルーム作成
MonobitEngine.MonobitNetwork.CreateRoom( null, settings, null );
【応用例】カスタムルームパラメータを使用したルーム一致検索▲
MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド実行時にカスタムルームパラメータによるフィルタリングを実行する
上記の「【応用例】カスタムルームパラメータを使用したルーム作成」を適用した状態で作成されたルームに対し、
以下のような処理を実行すると、ルーム入室時にカスタムルームパラメータとの一致判定を実行し、一致すればルームに入室できます。
// ルーム入室時に使用するカスタムルームパラメータを定義
MonobitEngine.RoomSettings settings = new MonobitEngine.RoomSettings();
settings.customRoomParameters["username"] = "MUN";
settings.customRoomParameters["password"] = "monobit";
// "username"と"password"が一致したルームのうち、ランダムに1つ選択して入室する
MonobitEngine.MonobitNetwork.JoinRandomRoom( settings, 0 );
【応用例】カスタムルームパラメータを使用したクエリー範囲検索▲
MonobitEngine.MonobitNetwork.JoinRandomRoom メソッド実行時にクエリーロビー用カスタムルームパラメータによるフィルタリングを実行する
上記の「【応用例】カスタムルームパラメータを使用したルーム作成」を適用した状態で作成された、クエリーロビー内のルームに対し、
以下のような処理を実行すると、ルーム入室時にカスタムルームパラメータとのクエリー範囲判定を実行し、一致すればルームに入室できます。
// クエリー検索ワードの設定
string filter = "username = MUN AND password = monobit AND version >= 1.0";
// クエリーに合致するルームのうち、ランダムに1つ選択して入室する
MonobitEngine.MonobitNetwork.JoinRandomRoom( null, 0,
MonobitEngine.Definitions.MatchmakingMode.SerialMatching,
new MonobitEngine.LobbyInfo() { Kind = MonobitEngine.LobbyKind.Query },
filter );