@Ezekiel4
Охотник на пиратов и сборщик монолитов

Как в матчмейкинге Photon Fusion задать условие «любой»?

В игре есть несколько сценариев, которые выбираются через параметры комнаты. Например, mode:
private async Task StartGame() {
		_runner.ProvideInput = true;

		var result = await _runner.StartGame(new StartGameArgs {
			GameMode = GameMode.AutoHostOrClient,
			Address = NetAddress.Any(),
			SessionProperties = new Dictionary<string, SessionProperty> { { "mode", "example0" } }
		});

		if (!result.Ok)
			Debug.LogError($"Failed to Start: {result.ShutdownReason}\n{result.ErrorMessage}");
	}


Всё работало хорошо ровно до тех пор, пока не понадобилось ввести возможность искать не конкретный сценарий, а любой доступный.

В чём проблема.
При подборе значение SessionProperties, каким бы оно ни было, всегда ищет полное совпадение. Если оставить значение для нужного ключа пустым, это вовсе не значит "любое попавшееся значение", а скорее "только такие же пустые значения". Поковырявшись в документации на их сайте, я не нашёл ничего, что помогло бы мне решить этот вопрос.

Мой вариант решения.
Пока мне в голову пришла только одна мысль - полностью вынести матчмейкинг себе.. например в firebase и полностью его контролировать, а затем когда мне нужно будет уже отправить всех в игру, создавать приватную комнату и отправлять туда всех командой Join.

Но как ни посмотри это выглядит как костыль. Может быть есть решение получше?
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы