Unity oyunlarında arkadaşlar

Play Games Arkadaşları, oyuncuların oyunlar arası bir arkadaş listesi oluşturmasına ve bu listeyi yönetmesine olanak tanır. Oyuncularınızın oyununuzu arkadaşlarıyla oynamasına yardımcı olmak için bu arkadaş listesine erişim isteğinde bulunabilirsiniz. Arkadaş sistemi hakkında daha fazla bilgi için Arkadaş kavramı sayfasına bakın.

Başlamadan önce

Bu API'leri uygulamanın en iyi yoluyla ilgili talimatlar için en iyi uygulamalar yönergelerine bakın.

Arkadaşları etkinleştirme

Arkadaşları etkinleştirmek için aşağıdaki işlevleri kullanın:

  • Arkadaşları görüntüleme: Bir oyuncunun arkadaş listesine erişim isteğinde bulunarak oyun oynayan arkadaşlarını oyun içi arkadaş listenize ekleyebilirsiniz.

  • Oyuncu profilini görüntüleme: Bir oyuncunun başka bir oyuncunun Play Games profilini görüntülemesine izin verin. Bu, oyuncuların arkadaşlarını tanıması ve oyununuzdaki diğer Play Games oyuncularına bağlanabilmesi için gereklidir. Pop-up'ı tetiklemek için bu URL'nin bir kullanıcı arayüzü öğesine bağlanması gerekir. Ayrıntılar için arkadaşlık kurallarına bakın.

Arkadaşları görüntüleme

Arkadaşları yüklemenin iki yolu vardır: ISocial çerçevesini kullanarak veya doğrudan PlayGamesPlatform ile.

ISocial çerçevesini kullanarak arkadaşları yükleme

Social.localUser.LoadFriends((success) =>  {
    Debug.Log("Friends loaded OK: " + ok));
    foreach(IUserProfile p in Social.localUser.friends) {
         Debug.Log(p.userName + " is a friend");
    }

Ancak mevcut oyuncu henüz oyuna bu bilgilere erişme izni vermemişse bu çağrı başarısız olur. LoadFriends'un izin eksikliği nedeniyle başarısız olup olmadığını kontrol etmek için GetLastLoadFriendsStatus değerini kullanın.

 PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
    // Check for consent
    if (status == LoadFriendsStatus.ResolutionRequired) {
        // Ask for resolution.
    }
});

Oyunlar, AskForLoadFriendsResolution çağrısı yaparak mevcut oyuncudan arkadaş listesini paylaşmasını isteyebilir.

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.
    }
});

Bu işlev, platforma özel uygun arkadaş paylaşımı kullanıcı arayüzünü gösterir. Bu kullanıcı arayüzünde, oyuncuya arkadaşlarını oyunla paylaşmak isteyip istemediği sorulur.

PlayGamesPlatform ile arkadaş yükleme

Arkadaşlarınızı yüklemenin bir diğer yolu da LoadFriends ve LoadMoreFriends simgesini kullanmaktır:

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 parametresi, bu sayfa için istenecek girişlerin sayısını temsil eder. Önbelleğe alınmış veriler zaten mevcutsa döndürülen arabelleğin bu boyuttan daha fazla veri içerebileceğini unutmayın. Koleksiyonda yeterli kayıt varsa arabelleğin en az bu kadar giriş içereceği garanti edilir. forceReload, true değerine ayarlanırsa bu çağrı, yerel olarak önbelleğe alınan tüm verileri temizler ve sunucudan en son verileri getirmeye çalışır. Bu, genellikle kullanıcı tarafından başlatılan yenileme gibi işlemler için kullanılır. Veri önbelleğe alma avantajlarından yararlanmak için bu ayar normalde false olarak belirlenmelidir.

Geri arama LoadFriendsStatus.LoadMore döndürürse daha fazla arkadaş yüklenmesi gerekir. LoadFriendsStatus.ResolutionRequired, kullanıcının arkadaş listesini paylaşmadığını gösterir ve doğrudan PlayGamesPlatform.Instance.AskForLoadFriendsResolution'i arayabilirsiniz.

Arkadaş listesi görünürlüğünü belirleme

Kullanıcının arkadaş listesini oyunla paylaşıp paylaşmadığını kontrol etmek için PlayGamesPlatform.Instance.GetFriendsListVisibility değerini kullanın. Olası iade durumları şunlardır:

  • FriendsListVisibilityStatus.RequestRequired, izin almanız gerektiğini gösterir.

  • FriendsListVisibilityStatus.Visible, arkadaş listesinin başarıyla yükleneceğini gösterir.

  • FriendsListVisibilityStatus.Unknown genellikle gerçekleşmez. Verileri yenilemek için forceReload değerini true olarak ayarlayabilirsiniz.

PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});

Oyuncu profilini görüntüleme

Bir oyuncuyu arkadaş olarak eklemek veya kaldırmak için profil gösterme ve karşılaştırma işlevini kullanın. Bu işlev, kullanıcının Play Games profilini gösteren bir alt sayfa iletişim kutusunu tetikler. İşlevi, istenen oyuncunun oyuncu kimliğiyle çağırın. Oyuncu ve arkadaşının oyun içi takma adları varsa profil kullanıcı arayüzüne daha fazla bağlam bilgisi eklemek için bunları görüşmede kullanın:

PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
    mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
    (result) => {
        // Profile comparison view has closed.
});