Play Games Friends позволяет игрокам создавать и поддерживать список друзей в разных играх. Вы можете запросить доступ к этому списку друзей, чтобы помочь вашим игрокам играть в вашу игру со своими друзьями. См. страницу концепции «Друзья» для получения более подробной информации о системе друзей.
Прежде чем начать
Настройте свой проект и плагин Google Play Games для Unity. Подробную информацию см. в руководстве по началу работы .
Инструкции по наилучшему способу реализации этих API см. в рекомендациях по передовому опыту.
Инструкции по наилучшему способу реализации этих API см. в рекомендациях по передовому опыту.
Включить друзей
Чтобы включить друзей, используйте следующие функции:
Просмотр друзей : запросите доступ к списку друзей игрока, чтобы вы могли добавить его друзей по играм в свой список друзей в игре.
Просмотр профиля игрока : разрешить игроку просматривать профиль другого игрока в Play Играх. Это важно, чтобы игрок знал, кто его друзья, и мог общаться с другими игроками Play Games в вашей игре. Это нужно будет привязать к элементу пользовательского интерфейса, чтобы вызвать всплывающее окно. Подробности смотрите в правилах для друзей .
Просмотр друзей
Есть два способа загрузить друзей: либо с помощью платформы ISocial
, либо напрямую с помощью PlayGamesPlatform
.
Загружайте друзей с помощью ISocial framework
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) => {});
Посмотреть профиль игрока
Чтобы добавить или удалить игрока из друзей, используйте функцию «Показать и сравнить профиль». Эта функция запускает диалоговое окно нижнего листа, показывающее профиль пользователя в Play Играх; вызовите функцию с идентификатором запрошенного игрока. Если у игрока и друга есть игровые псевдонимы, используйте их в вызове, чтобы добавить больше контекста в пользовательский интерфейс профиля:
PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
(result) => {
// Profile comparison view has closed.
});