Unity oyunlarında arkadaşlar

Play Games Friends, oyuncuların oyunlar arası arkadaş listesi oluşturup tutmalarına olanak tanır. Oyuncularınızın oyununuzu arkadaşlarıyla oynamalarına yardımcı olmak için bu arkadaş listesine erişim isteğinde bulunabilirsiniz. Arkadaşlar sistemi hakkında daha fazla bilgi için Arkadaşlar kavram sayfasına göz atın.

Başlamadan önce

Bu API'leri uygulamanın en iyi şekliyle ilgili talimatlar için en iyi uygulamalar yönergelerini inceleyin.

Arkadaşları etkinleştir

Arkadaşları etkinleştirmek için şu işlevleri kullanın:

  • Arkadaşları görüntüleme: Bir oyuncunun arkadaş listesine erişim isteyerek oyuncunun Play Games 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. Oyuncuların arkadaşlarının kim olduğunu bilmesi ve oyununuzdaki diğer Play Games oyuncularıyla bağlantı kurabilmesi için bu çok önemlidir. Pop-up'ı tetiklemek için bunun bir kullanıcı arayüzü öğesine bağlanması gerekir. Ayrıntılı bilgi için arkadaşlar kurallarına bakın.

Arkadaşları görüntüle

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

Arkadaşlarınızı ISocial çerçevesiyle yükleyin

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 öğesinin eksik izin nedeniyle başarısız olup olmadığını kontrol etmek için GetLastLoadFriendsStatus özelliğini kullanın.

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

Bir oyun, mevcut oyuncudan AskForLoadFriendsResolution yazıp 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, kullanıcı arayüzünü paylaşan uygun platforma özel arkadaşları gösterir. Bu kullanıcı arayüzü, oyuncuya arkadaşlarını oyunla paylaşmak isteyip istemediğini soruyor.

PlayGamesPlatform ile arkadaşlarınızı yükleyin

Arkadaşları yüklemenin bir başka yolu da LoadFriends ve LoadMoreFriends 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ş sayısını temsil eder. Önbelleğe alınan veriler zaten mevcutsa döndürülen arabelleğin bu boyuttan daha fazlasını içerebileceğini unutmayın. Koleksiyon yeterli sayıda kayıt içeriyorsa arabellekte en az bu kadar giriş olması garanti edilir. forceReload, true değerine ayarlanırsa bu çağrı, yerel olarak önbelleğe alınmış tüm verileri temizler ve sunucudan en yeni verileri getirmeye çalışır. Bu genellikle kullanıcı tarafından başlatılan yenileme gibi işlemler için kullanılır. Normalde bu, veri önbelleğe almanın avantajlarından yararlanmak için false olarak ayarlanmalıdır.

Geri çağırma LoadFriendsStatus.LoadMore değerini döndürürse yüklenecek arkadaş sayısı daha fazla olur. LoadFriendsStatus.ResolutionRequired, kullanıcının arkadaş listesini paylaşmadığını ve doğrudan PlayGamesPlatform.Instance.AskForLoadFriendsResolution adlı kullanıcıyı arayabileceğinizi belirtir.

Arkadaş listesinin 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 öğesini kullanın. Olası iade durumları şunlardır:

  • FriendsListVisibilityStatus.RequestRequired, izin istemeniz gerektiğini belirtir.

  • FriendsListVisibilityStatus.Visible, arkadaş listesinin başarıyla yüklenmesinin gerektiğini belirtir.

  • Genellikle FriendsListVisibilityStatus.Unknown böyle bir durumla karşılaşmamanız gerekir. Verileri yenilemek için forceReload değerini true olarak ayarlayabilirsiniz.

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

Oyuncu profilini görüntüle

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

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