Игры Друзья в Unity,Игры Друзья в Unity

Play Games Friends позволяет игрокам создавать и поддерживать список друзей в разных играх. Вы можете запросить доступ к этому списку друзей, чтобы помочь вашим игрокам играть в вашу игру со своими друзьями. См. страницу концепции «Друзья» для получения более подробной информации о системе друзей.

Прежде чем начать

Инструкции по наилучшему способу реализации этих 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.
});