ルームカスタムパラメータ

目次

  概要
  事前設定
  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が設定されます)

戻り値

内容
void -

記述例

// ルーム入室中にカスタムパラメータ"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 );