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

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

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