Unity oyunlarında arkadaşlar

Play Oyun Arkadaşları, oyuncuların oyunlar arası arkadaş listesi oluşturup bu listeyi yönetmesine olanak tanır. Oyuncularınızın arkadaşlarıyla oyununuzu oynamasına yardımcı olmak için bu arkadaş listesine erişim isteğinde bulunabilirsiniz. Arkadaşlık sistemi hakkında daha fazla bilgi için Arkadaşlık 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ş özelliğini 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 oyuncunun oyun oynayan arkadaşlarını oyun içi arkadaş listenize ekleyebilirsiniz.

  • Oyuncu profili görüntüleme: Bir oyuncunun başka bir oyuncunun Play Games profilini görüntülemesine izin verin. Bu, oyuncuların kimlerin arkadaşı olduğunu bilmesi ve oyununuzda diğer Play Games oyuncularıyla bağlantı kurabilmesi için gereklidir. Pop-up'ı tetiklemek için bu, bir kullanıcı arayüzü öğesine bağlanmalıdır. Ayrıntılar için arkadaşlık yönergelerine 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çevesiyle 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, oyuna bu bilgilere erişme izni vermediyse bu çağrı başarısız olur. GetLastLoadFriendsStatus izninin eksik olması nedeniyle LoadFriends işleminin başarısız olup olmadığını kontrol etmek için GetLastLoadFriendsStatus kullanın.

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

Bir oyun, AskForLoadFriendsResolution işlevini çağırarak 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ıyla oyunu paylaşmak isteyip istemediği sorulur.

PlayGamesPlatform ile arkadaşları yükleme

Arkadaşları yüklemenin bir diğer 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 istenen giriş sayısını temsil eder. Önbelleğe alınmış veriler zaten varsa döndürülen arabellek bu boyuttan daha büyük olabilir. Koleksiyonda yeterli sayıda kayıt varsa arabelleğin en az bu kadar giriş içermesi garanti edilir. forceReload, true olarak ayarlanırsa bu çağrı, yerel olarak önbelleğe alınmış 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. Normalde, veri önbelleğe almanın avantajlarından yararlanmak için bu değer false olarak ayarlanmalıdır.

Geri çağırma işlevi LoadFriendsStatus.LoadMore değerini döndürürse yüklenecek daha fazla arkadaş vardır. LoadFriendsStatus.ResolutionRequired, kullanıcının arkadaş listesini paylaşmadığını ve doğrudan PlayGamesPlatform.Instance.AskForLoadFriendsResolution'i arayabileceğinizi gösterir.

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

  • FriendsListVisibilityStatus.RequestRequired, izin istemeniz gerektiğini gösterir.

  • FriendsListVisibilityStatus.Visible, arkadaş listesinin yüklenmesinin başarılı olması gerektiğini gösterir.

  • FriendsListVisibilityStatus.Unknown genellikle olmamalıdır. 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 arkadaş listenizden çıkarmak 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. İşlevi, istenen oyuncunun oyuncu kimliğiyle çağırın. Oyuncunun ve arkadaşının oyun içi takma adları varsa bunları görüşmede kullanarak profil kullanıcı arayüzüne daha fazla bağlam ekleyin:

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