스킬 레벨로 방 찾는 방법

스킬 레벨로 방을 검색하려면 방 멤버 전체의 평균 레벨을 저장해야 합니다. 이것은 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);
    }
);