Получить GKPlayer.playerID от GKCloudPlayer.playerID

Я хочу использовать новый класс GKGameSession в моей многопользовательской игре для iOS 10. Мне нужно получить playerID всех пользователей из Game Center, чтобы проверить совместимость с предыдущими версиями моей игры. Но GKPlayer.playerID != GKCloudPlayer.playerID

Как я могу получить GKPlayer.playerID от GKCloudPlayer.playerID?

1 ответ

Решение

Вы не должны делать это. Они упоминали это в последнем WWDC.

GKCloudPlayer предназначен только для использования в сеансах. В основном он содержит две части данных, идентификатор игрока, который уникален для вашего приложения, а также отображаемое имя, то есть то, что пользователь будет иметь, и то, что он хочет, чтобы его имя отображалось. Это вообще не объект GKPlayer.

Если вы попытаетесь использовать это для списка лидеров, для достижений, для другого мультиплеера, для чего-либо еще, это не будет работать. Поэтому, пожалуйста, не делай этого.

Все будут очень разочарованы. Итак, как мы получаем наших облачных игроков? В основном вы можете получить свой текущий зарегистрированный игрок.

Большинство вещей в Sessions в основном будут вызываться от вашего текущего игрока, хотя нет необходимости в том, чтобы убедиться, что у вас есть игрок, и вы говорите: "О, этот игрок сохраняет эти данные". Все это обрабатывается для вас в фоновом режиме.

https://developer.apple.com/videos/play/wwdc2016-611/?time=1139

Другие вопросы по тегам