Unity गेम में दोस्त

Play Games Friends की सुविधा से, खिलाड़ी अलग-अलग गेम में अपने दोस्तों की सूची बना सकते हैं और उसे मैनेज कर सकते हैं. आपके पास इस सूची का ऐक्सेस पाने का अनुरोध करने का विकल्प होता है, ताकि आपके खिलाड़ी अपने दोस्तों के साथ आपका गेम खेल सकें. दोस्तों की सुविधा के बारे में ज़्यादा जानने के लिए, दोस्तों की सुविधा का कॉन्सेप्ट पेज देखें.

शुरू करने से पहले

इन एपीआई को लागू करने के सबसे सही तरीके जानने के लिए, सबसे सही तरीकों के बारे में दिशा-निर्देश देखें.

दोस्तों की सुविधा चालू करना

दोस्तों की सुविधा चालू करने के लिए, इन फ़ंक्शन का इस्तेमाल करें:

  • दोस्तों को देखना: किसी खिलाड़ी के दोस्तों की सूची का ऐक्सेस पाने का अनुरोध करें, ताकि आप अपने गेम में मौजूद दोस्तों की सूची में, Play Games पर मौजूद उनके दोस्तों को जोड़ सकें.

  • किसी खिलाड़ी की प्रोफ़ाइल देखना: किसी खिलाड़ी को दूसरे खिलाड़ी की 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");
    }

हालांकि, अगर मौजूदा खिलाड़ी ने गेम को यह जानकारी ऐक्सेस करने की अनुमति नहीं दी है, तो यह कॉल काम नहीं करेगी. यह देखने के लिए कि सहमति न मिलने की वजह से LoadFriends काम नहीं कर पाया है या नहीं, GetLastLoadFriendsStatus का इस्तेमाल करें.

 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 को 'सही' पर सेट किया जा सकता है.

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

किसी खिलाड़ी की प्रोफ़ाइल देखना

किसी खिलाड़ी को दोस्त के तौर पर जोड़ने या हटाने के लिए, प्रोफ़ाइल दिखाने और उसकी तुलना करने वाले फ़ंक्शन का इस्तेमाल करें. इस फ़ंक्शन से, बॉटम शीट डायलॉग ट्रिगर होता है. इसमें उपयोगकर्ता की Play Games प्रोफ़ाइल दिखती है. अनुरोध किए गए खिलाड़ी के आईडी के साथ, इस फ़ंक्शन को कॉल करें. अगर खिलाड़ी और दोस्त के पास गेम में निकनेम हैं, तो प्रोफ़ाइल यूज़र इंटरफ़ेस (यूआई) में ज़्यादा जानकारी जोड़ने के लिए, कॉल में उनका इस्तेमाल करें:

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