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