Unity के लिए Google Play Games सेट अप करना और साइन इन करना

इस दस्तावेज़ में, Unity के लिए Google Play Games प्लगिन का इस्तेमाल करने के लिए, Unity प्रोजेक्ट को सेट अप करने का तरीका बताया गया है. इस ट्यूटोरियल में, प्लग इन इंस्टॉल करने और अपने Unity प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया गया है. इस दस्तावेज़ में, साइन-इन करने की सेवा की पुष्टि करने का तरीका भी बताया गया है.

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

सॉफ़्टवेयर से जुड़ी ज़रूरी शर्तें देखें. Play Console सेट अप करें और Unity Hub इंस्टॉल करें.

प्लग इन इंस्टॉल करना

Unity के लिए Google Play Games प्लगिन को डाउनलोड और इंस्टॉल करने के लिए, Unity Hub में यह तरीका अपनाएं:

  1. GitHub रिपॉज़िटरी डाउनलोड करें.

  2. current-build डायरेक्ट्री में, unitypackage फ़ाइल ढूंढें. यह फ़ाइल, प्लग इन के बारे में बताती है. उदाहरण के लिए, यह इस तरह का होना चाहिए:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Unity प्रोजेक्ट सेट अप करना

प्लेयर की सेटिंग में Unity प्रोजेक्ट सेट अप करने के लिए, यह तरीका अपनाएं:

  1. अपना गेम प्रोजेक्ट खोलें.

  2. unitypackage फ़ाइल को अपने प्रोजेक्ट की ऐसेट में इंपोर्ट करने के लिए, Unity Hub में ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज पर क्लिक करें.

  3. पक्का करें कि आपका मौजूदा बिल्ड प्लैटफ़ॉर्म, Android पर सेट हो.

    1. मुख्य मेन्यू में, फ़ाइल > बिल्ड सेटिंग पर क्लिक करें.

    2. Android चुनें और प्लैटफ़ॉर्म स्विच करें पर क्लिक करें.

    3. विंडो > Google Play Games में, एक नया मेन्यू आइटम दिखेगा. अगर ऐसा नहीं है, तो ऐसेट > रीफ़्रेश करें पर क्लिक करके ऐसेट रीफ़्रेश करें. इसके बाद, बिल्ड प्लैटफ़ॉर्म को फिर से सेट करने की कोशिश करें.

  4. Unity Hub में, फ़ाइल > बिल्ड सेटिंग > प्लेयर सेटिंग > अन्य सेटिंग पर क्लिक करें.

  5. टारगेट एपीआई लेवल बॉक्स में, कोई वर्शन चुनें.

  6. स्क्रिप्टिंग बैकएंड बॉक्स में, IL2CPP डालें.

  7. टारगेट आर्किटेक्चर बॉक्स में, कोई वैल्यू चुनें.

  8. पैकेज का नाम package_name नोट करें.इस जानकारी का इस्तेमाल बाद में किया जा सकता है.

आपके Unity प्रोजेक्ट में प्लेयर की सेटिंग
आपके Unity प्रोजेक्ट में प्लेयर की सेटिंग.

नया पासकोड स्टोर बनाना

अपने क्रेडेंशियल की पुष्टि करने के लिए, आपको एक कुंजी की ज़रूरत होगी. यह तरीक़ा अपनाएँ:

  1. Unity Hub में, फ़ाइल > बिल्ड सेटिंग > प्लेयर सेटिंग पर क्लिक करें.
  2. पब्लिश करने की सेटिंग सेक्शन में, कीस्टोर मैनेजर पर क्लिक करें.
    1. कीस्टोर मैनेजर विंडो में, कीस्टोर > नया बनाएं > कहीं से भी पर क्लिक करें.
    2. कोई फ़ोल्डर चुनें और पासकोड के लिए कोई नाम दें.
    3. Password बॉक्स में, कोई पासवर्ड डालें और उसकी पुष्टि करें.
    4. कुंजी जोड़ें पर क्लिक करें.

फ़ोल्डर का नाम नोट करें. इस नाम का इस्तेमाल, Google Cloud में क्रेडेंशियल बनाने के लिए किया जा सकता है.

Play Console से Android संसाधनों को कॉपी करना

Play Console में बनाई गई हर उपलब्धि, लीडरबोर्ड, और इवेंट में एक Android रिसॉर्स शामिल होता है. इसका इस्तेमाल, Unity प्रोजेक्ट सेट अप करते समय किया जाता है.

अपने गेम के लिए Android संसाधन पाने के लिए, यह तरीका अपनाएं:

  1. Google Play Console में, गेम खोलें.

  2. Google Play की गेम सेवाएं - कॉन्फ़िगरेशन पेज (आगे बढ़ाएं > Google Play की गेम सेवाएं > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन) पर, संसाधन पाएं पर क्लिक करें.

  3. संसाधन विंडो में, Android(XML) टैब पर क्लिक करें.

  4. Android संसाधन (AndroidManifest.xml) कॉन्टेंट चुनें और कॉपी करें.

अपने Unity प्रोजेक्ट में Android संसाधन जोड़ना

अपने Unity प्रोजेक्ट में ये Android संसाधन जोड़ें:

  1. Unity Hub में, विंडो > Google Play Games > सेटअप > Android सेटअप पर क्लिक करें.

    • कंसटेंट सेव करने के लिए डायरेक्ट्री फ़ील्ड में, कॉन्स्टेंट फ़ाइल के लिए फ़ोल्डर का नाम डालें.
    • कंसटेंट क्लास का नाम फ़ील्ड में, नेमस्पेस के साथ-साथ उस C# क्लास का नाम डालें जिसे बनाना है.

      उदाहरण के लिए, अगर C# क्लास id.cs है और वह ऐसेट > myproject > स्क्रिप्ट > id.cs में मौजूद है. कॉन्सटेंट क्लास का नाम myproject.scripts.id हो सकता है.

    • संसाधनों की परिभाषा फ़ील्ड में, Android संसाधनों का वह डेटा चिपकाएं (AndroidManifest.xml फ़ाइल) जिसे आपने Google Play Console से कॉपी किया है.

    • ज़रूरी नहीं: क्लाइंट आईडी फ़ील्ड में, लिंक किए गए वेब ऐप्लिकेशन का क्लाइंट आईडी डालें.

      Google Cloud से अपने गेम के लिए क्लाइंट आईडी पाने के लिए, क्लाइंट आईडी बनाना लेख पढ़ें.

      इसकी ज़रूरत सिर्फ़ तब होती है, जब आपके गेम के लिए वेब-आधारित बैकएंड हो और बैकएंड सर्वर से ऐक्सेस टोकन पाने के लिए, आपको सर्वर के ऑथराइज़ेशन कोड की ज़रूरत हो. इसके अलावा, अगर आपको खिलाड़ी को गेम से बाहर के अन्य एपीआई कॉल करने के लिए आईडी टोकन की ज़रूरत हो, तब भी इसकी ज़रूरत होती है.

    • सेटअप पर क्लिक करें. इससे आपके गेम को क्लाइंट आईडी के साथ कॉन्फ़िगर किया जाता है और एक C# क्लास जनरेट होती है. इस क्लास में, आपके हर Android संसाधन के लिए कॉन्स्टेंट होते हैं.

  2. Unity Hub में, विंडो > Google Play Games > सेटअप > आस-पास के कनेक्शन सेटअप करें पर क्लिक करें.

    • आस-पास के कनेक्शन की सेवा का आईडी फ़ील्ड में, package_name डालें.

      उसी package_name का इस्तेमाल करें जिसका इस्तेमाल आपने Unity प्रोजेक्ट सेट अप करने के लिए किया था.

    • सेटअप पर क्लिक करें.

कोई सोशल मीडिया प्लैटफ़ॉर्म चुनना

Google Play Games Services प्लगिन, Unity के सोशल इंटरफ़ेस को लागू करता है. ऐसा इसलिए किया जाता है, ताकि उन गेम के साथ काम किया जा सके जो पहले से ही उस इंटरफ़ेस का इस्तेमाल करते हैं. हालांकि, कुछ सुविधाएं Play Games के लिए खास हैं. इन्हें Unity के स्टैंडर्ड सोशल इंटरफ़ेस के एक्सटेंशन के तौर पर उपलब्ध कराया जाता है.

स्टैंडर्ड एपीआई कॉल को Social.Active ऑब्जेक्ट के ज़रिए ऐक्सेस किया जा सकता है. यह ISocialPlatform इंटरफ़ेस का रेफ़रंस है. Google Play Games Services के ऐसे एक्सटेंशन ऐक्सेस किए जा सकते हैं जो स्टैंडर्ड नहीं हैं. इसके लिए, Social.Active ऑब्जेक्ट को PlayGamesPlatform क्लास में कास्ट करें. इस क्लास में, अन्य तरीके भी उपलब्ध हैं.

डिफ़ॉल्ट सोशल मीडिया प्लैटफ़ॉर्म को बदले बिना प्लगिन का इस्तेमाल करना

PlayGamesPlatform.Activate को कॉल करने पर, Google Play Games Services आपके डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म के तौर पर लागू हो जाता है. इसका मतलब है कि Social और Social.Active में मौजूद तरीकों के लिए स्टैटिक कॉल, Google Play Games Services प्लग इन की मदद से किए जाएंगे. प्लग इन का इस्तेमाल करने वाले ज़्यादातर गेम में ऐसा ही होता है.

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

  1. PlayGamesPlatform.Activate को कॉल न करें
  2. अगर Xyz किसी ऐसे तरीके का नाम है जिसे आपको Social क्लास पर कॉल करना है, तो Social.Xyz को कॉल न करें. इसके बजाय, PlayGamesPlatform.Instance.Xyz को कॉल करें
  3. Google Play Games Services का इस्तेमाल करते समय, Social.Active का इस्तेमाल न करें. इसके बजाय, PlayGamesPlatform.Instance का इस्तेमाल करें.

इस तरह, दो या उससे ज़्यादा सोशल प्लैटफ़ॉर्म पर एक साथ स्कोर और उपलब्धियां सबमिट की जा सकती हैं:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

साइन इन करने की सेवा की पुष्टि करना

गेम खोलने पर, साइन इन करने की सेवा का इस्तेमाल करके, Play Games Services से अपने-आप कनेक्ट करने की कोशिश की जाती है. अगर कनेक्शन ठीक से जुड़ जाता है, तो आपके गेम में साइन इन करने का प्रॉम्प्ट दिखता है. साथ ही, Unity के लिए Google Play Games Services प्लगिन का इस्तेमाल किया जा सकता है.

अगर किसी उपयोगकर्ता ने अपने डिवाइस पर कभी Google Play Games services का इस्तेमाल नहीं किया है, तो उसे Play Games खाता बनाने के लिए, एक बार सेटअप करने की स्क्रीन पर अपने-आप ले जाया जाता है.

अपनी स्क्रिप्ट के Start तरीके में, अपने-आप साइन इन करने की कोशिश के नतीजे को सुनें, पुष्टि की स्थिति फ़ेच करें, और अगर उपयोगकर्ता ने साइन इन नहीं किया है, तो Play Games की सेवाओं की सुविधाओं को बंद करें.

अगर Unity प्लग इन का वर्शन v11 से पहले का है, तो साइन इन करने की सुविधा का इस्तेमाल नहीं किया जा सकता.

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

नतीजा कोड एक सूची है. इसका इस्तेमाल, साइन इन न हो पाने की वजह की पहचान करने के लिए किया जा सकता है.

अगर आपको Unity के सोशल प्लैटफ़ॉर्म का इस्तेमाल करना है, तो इसके बजाय इस कोड का इस्तेमाल किया जा सकता है:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

जब तक आपको Authenticate से सही रिटर्न वैल्यू नहीं मिल जाती, तब तक Google Play Games Services के एपीआई को कोई कॉल नहीं किया जा सकता. इसलिए, हमारा सुझाव है कि गेम तब तक स्टैंडबाय स्क्रीन दिखाएं, जब तक कॉलबैक नहीं किया जाता. इससे यह पक्का किया जा सकेगा कि पुष्टि होने तक, उपयोगकर्ता गेम न खेल पाएं.

लेख पढ़ें

'Play ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल करना

Google, Play ऐप्लिकेशन साइनिंग की मदद से, आपके ऐप्लिकेशन की साइनिंग पासकोड को मैनेज करता है और उसे सुरक्षित रखता है. Android ऐप्लिकेशन बंडल की ऑप्टिमाइज़ की गई फ़ाइलों को डिस्ट्रिब्यूशन के लिए साइन करने के लिए, Play ऐप्लिकेशन साइनिंग का इस्तेमाल किया जा सकता है. 'Play ऐप्लिकेशन साइनिंग' की मदद से, आपके ऐप्लिकेशन साइनिंग पासकोड को Google के सुरक्षित इन्फ़्रास्ट्रक्चर पर सेव रखा जाता है. Play ऐप्लिकेशन साइनिंग का इस्तेमाल करने के लिए, आपको सबसे पहले Unity Hub से एक AAB फ़ाइल बनानी होगी और उसे डाउनलोड करना होगा. इसके बाद, AAB फ़ाइल को Play Console पर अपलोड करके, इंंटरनल टेस्टिंग रिलीज़ बनाई जा सकती है.

AAB फ़ाइल बनाना

Unity Hub में AAB फ़ाइल बनाने के लिए, यह तरीका अपनाएं:

  1. Unity Hub में, फ़ाइल > बिल्ड सेटिंग पर क्लिक करें.
  2. ऐप्लिकेशन बंडल बनाएं ( Google Play ) चुनें.

    ज़्यादा जानकारी के लिए, Android Build Settings का रेफ़रंस देखें.

  3. बनाएं पर क्लिक करें.

  4. Unity Hub से AAB फ़ाइल डाउनलोड करें.

कंपनी के जांचकर्ताओं के लिए उपलब्ध टेस्टिंग रिलीज़ बनाना

कंपनी के जांचकर्ताओं के लिए उपलब्ध टेस्टिंग रिलीज़ बनाने और Play Console में टेस्टर जोड़ने के लिए, यह तरीका अपनाएं:

  1. Google Play Console में जाकर, कोई गेम चुनें.
  2. टेस्ट और रिलीज़ पेज (टेस्टिंग > इंटरनल टेस्टिंग) पर जाएं.
  3. अपलोड करें पर क्लिक करें और AAB फ़ाइल चुनें.
  4. रिलीज़ की जानकारी फ़ील्ड में, कोई नाम डालें.
  5. आगे बढ़ें पर क्लिक करें और रिलीज़ की जानकारी देखें.
  6. सहेजें और प्रकाशित करें क्‍लिक करें.
  7. ज़्यादा से ज़्यादा 100 टेस्टर जोड़ने के लिए, टेस्टर टैब पर, ईमेल सूची बनाएं पर क्लिक करें.

    ज़्यादा जानकारी के लिए, इंटरनल टेस्ट: इसके तहत, 100 टेस्टर जांच में शामिल हो सकते हैं लेख पढ़ें.

  8. सुझाव/राय/शिकायत के लिए यूआरएल या ईमेल पता में, सुझाव/राय/शिकायत के लिए यूआरएल या ईमेल पता डालें.

  9. सेव करें पर क्लिक करें.

ऐप्लिकेशन साइनिंग के क्रेडेंशियल की पुष्टि करना

  1. Google Play Console में जाकर, कोई गेम चुनें.
  2. जांच करें और रिलीज़ करें पेज पर जाएं (सेटअप > ऐप्लिकेशन साइनिंग).
  3. ऐप्लिकेशन साइनिंग के क्रेडेंशियल की पुष्टि करें.

प्रोजेक्ट बनाना और चलाना

अब गेम प्रोजेक्ट बनाया और चलाया जा सकता है. गेम शुरू होने पर, आपको अपने-आप साइन इन करने की कोशिश दिखेगी.

आपके पास Android डिवाइस होना चाहिए, जिसमें यूएसबी डीबगिंग की सुविधा चालू हो. इसके अलावा, आपके पास ऐसा एमुलेटर भी होना चाहिए जिस पर डेवलप किया गया प्रोजेक्ट चल सके.

सर्वर की पुष्टि करने के लिए कोड वापस पाना

मौजूदा प्लेयर की ओर से बैकएंड वेब सर्वर पर Google के एपीआई ऐक्सेस करने के लिए, आपको क्लाइंट ऐप्लिकेशन से पुष्टि करने का कोड लेना होगा और इसे अपने वेब सर्वर ऐप्लिकेशन को पास करना होगा. इसके बाद, कोड को ऐक्सेस टोकन के लिए बदला जा सकता है, ताकि अलग-अलग एपीआई को कॉल किया जा सके. वर्कफ़्लो के बारे में जानकारी के लिए, 'वेब के लिए Google से साइन इन करें' लेख पढ़ें.

सर्वर साइड ऐक्सेस कोड पाने के लिए:

  1. Play Console में अपने गेम के लिए वेब क्लाइंट आईडी जोड़ें.
    1. Google Play Console में, अपना गेम चुनें.
    2. कॉन्फ़िगरेशन पेज (उपयोगकर्ताओं की संख्या बढ़ाएं > Play Games की सेवाएं > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन) पर, क्रेडेंशियल जोड़ें पर क्लिक करें.
    3. क्रेडेंशियल जोड़ें पेज पर, गेम सर्वर चुनें.
    4. OAuth 2.0 क्लाइंट आईडी जनरेट करें.
    5. क्लाइंट आईडी की वैल्यू नोट करें. आपको यह वैल्यू बाद में देनी होगी.
  2. Unity Hub में वेब क्लाइंट आईडी जोड़ें.

    1. Unity Hub में, Unity के लिए Google Play Games सेट अप करें और साइन इन करें.
    2. Unity Hub में, विंडो > Google Play Games > सेटअप > Android सेटअप पर जाएं.
    3. क्लाइंट आईडी की वैल्यू डालें.
  3. अन्य स्कोप के लिए, सर्वर का पुष्टि करने वाला कोड वापस पाएं.

    C#

    using GooglePlayGames.BasicApi;
    
    // Define selectedScope having additional identity scopes.
    private List selectedScopes = new List();
    
    // Add scopes you want to request.
    selectedScopes.Add(AuthScope.OPEN_ID);
    selectedScopes.Add(AuthScope.PROFILE);
    selectedScopes.Add(AuthScope.EMAIL);
    
    // Call RequestServerSideAccess with additional scopes and retrieve
    // authcode and grantedscopes list.
    PlayGamesPlatform.Instance.RequestServerSideAccess(
        /* forceRefreshToken= */ false,selectedScopes
        (AuthResponse authResponse) =>
        {
        string authCode = authResponse.GetAuthCode();
        List grantedScopes = authResponse.GetGrantedScopes();
    
        // send authCode to server...
    });

सुविधाएं सेट अप करना और जोड़ना