スキルレベルに基づいてルームを見つける方法¶
スキルレベルを使用してルームを検索できるようにするには、ルームの全メンバーの平均レベルを保存しておく必要があります。これは、SetRoom()メソッドを使用して行うことができます。
StrixNetwork.instance.SetRoom(
1, // ルームのID
new RoomProperties { key1 = 25 }, // 平均スキルレベル
args => {
Debug.Log("SetRoom succeeded");
},
args => {
Debug.Log("SetRoom failed. error = " + args.cause);
}
);
スキルレベルでルームを検索するには、GreaterThanEquals()とLessThanEquals()を使用して範囲検索を実行します。
StrixNetwork.instance.SearchJoinableRoom(
new And(
new List<ICondition> {
new GreaterThanEquals(new Field("key1"), new Value((double)24)),
new LessThanEquals(new Field("key1"), new Value((double)28))
}
),
null, 10, 0,
args => {
foreach (var roomInfo in args.roomInfoCollection) {
logger.Info("roomId " + roomInfo.roomId + " name " + roomInfo.name);
}
},
args => {
logger.Info("SearchJoinableRoom failed. error = " + args.cause);
}
);
次の例では、ConditionBuilderを使用しています。
StrixNetwork.instance.SearchJoinableRoom(
ConditionBuilder.Builder()
.Field("key1").GreaterThanEquals((double)24)
.And()
.Field("key1").LessThanEquals((double)28)
.Build(),
null, 10, 0,
args => {
foreach (var roomInfo in args.roomInfoCollection) {
logger.Info("roomId " + roomInfo.roomId + " name " + roomInfo.name);
}
},
args => {
logger.Info("SearchJoinableRoom failed. error = " + args.cause);
}
);