Функция «Друзья в играх» позволяет игрокам создавать и поддерживать список друзей для разных игр. Вы можете запросить доступ к этому списку друзей, чтобы помочь своим игрокам играть в вашу игру со своими друзьями. Подробнее о системе друзей см. на странице «Концепция друзей» .
Прежде чем начать
Настройте свой проект и плагин Google Play Games для Unity. Подробности см. в руководстве по началу работы .
Для получения инструкций по оптимальному внедрению этих API ознакомьтесь с рекомендациями по передовым методам работы .
Для получения инструкций по оптимальному внедрению этих API ознакомьтесь с рекомендациями по передовым методам работы .
Включить друзей
Чтобы включить функцию добавления друзей, используйте следующие функции:
Просмотр друзей : Запросите доступ к списку друзей игрока, чтобы добавить его друзей по играм в свой список друзей в игре.
Просмотр профиля игрока : Разрешите игроку просматривать профиль другого игрока в Play Games. Это необходимо, чтобы игрок знал, кто его друзья, и мог подключаться к другим игрокам Play Games в вашей игре. Для запуска всплывающего окна необходимо привязать эту функцию к элементу пользовательского интерфейса. Подробности см. в руководстве по добавлению друзей .
Посмотреть друзей
Есть два способа добавить друзей: либо с помощью фреймворка ISocial , либо напрямую через PlayGamesPlatform .
Добавляйте друзей с помощью фреймворка iSocial.
Social.localUser.LoadFriends((success) => {
Debug.Log("Friends loaded OK: " + ok));
foreach(IUserProfile p in Social.localUser.friends) {
Debug.Log(p.userName + " is a friend");
}
Однако этот вызов завершится неудачей, если текущий игрок еще не предоставил игре разрешение на доступ к этой информации. Используйте GetLastLoadFriendsStatus , чтобы проверить, завершилась ли LoadFriends неудачей из-за отсутствия согласия.
PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
// Check for consent
if (status == LoadFriendsStatus.ResolutionRequired) {
// Ask for resolution.
}
});
В игре можно запросить у текущего игрока доступ к списку друзей, вызвав метод AskForLoadFriendsResolution .
PlayGamesPlatform.Instance.AskForLoadFriendsResolution((result) => {
if (result == UIStatus.Valid) {
// User agreed to share friends with the game. Reload friends.
} else {
// User doesn’t agree to share the friends list.
}
});
Эта функция отобразит соответствующий интерфейс обмена друзьями, специфичный для данной платформы. Этот интерфейс спрашивает игрока, хочет ли он поделиться своими друзьями с игрой.
Добавляйте друзей в друзья с помощью PlayGamesPlatform
Ещё один способ загрузки друзей — использование LoadFriends и LoadMoreFriends :
PlayGamesPlatform.Instance.LoadFriends(pageSize, forceReload, (status) => {
// Check if the call is successful and if there are more friends to load.
});
PlayGamesPlatform.Instance.LoadMoreFriends(pageSize, (status) => {
// Check if there are more friends to load.
});
Параметр pageSize указывает количество записей, которые необходимо запросить для этой страницы. Обратите внимание, что если кэшированные данные уже существуют, возвращаемый буфер может содержать больше данных, чем указано. Гарантируется, что буфер будет содержать как минимум это количество записей, если коллекция содержит достаточное количество записей. Если forceReload установлено в true , этот вызов очистит все локально кэшированные данные и попытается получить последние данные с сервера. Это обычно используется для таких действий, как обновление страницы по инициативе пользователя. Обычно для получения преимуществ кэширования данных следует установить значение false .
Если функция обратного вызова возвращает LoadFriendsStatus.LoadMore , значит, есть еще друзья, которых нужно загрузить. LoadFriendsStatus.ResolutionRequired сигнализирует о том, что пользователь не поделился списком друзей, и вы можете напрямую вызвать PlayGamesPlatform.Instance.AskForLoadFriendsResolution .
Определить видимость списка друзей
Используйте PlayGamesPlatform.Instance.GetFriendsListVisibility , чтобы проверить, поделился ли пользователь списком друзей с игрой. Возможные возвращаемые значения:
FriendsListVisibilityStatus.RequestRequiredуказывает на необходимость запроса согласия.FriendsListVisibilityStatus.Visibleуказывает на то, что загрузка списка друзей должна пройти успешно.Обычно
FriendsListVisibilityStatus.Unknownне должно быть. Вы можете установитьforceReloadв значение true, чтобы обновить данные.
PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});
Просмотреть профиль игрока
Чтобы добавить или удалить игрока из списка друзей, используйте функцию «Показать и сравнить профили». Эта функция запускает диалоговое окно внизу экрана, отображающее профиль пользователя в разделе «Играть»; вызовите функцию, указав идентификатор запрашиваемого игрока. Если у игрока и друга есть внутриигровые никнеймы, используйте их в вызове, чтобы добавить больше контекста в пользовательский интерфейс профиля:
PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
(result) => {
// Profile comparison view has closed.
});