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

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

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

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

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

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

  1. GitHub repo डाउनलोड करें.

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

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

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

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

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

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

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

    1. मुख्य मेन्यू में, File > Build Settings पर क्लिक करें.

    2. Android को चुनें और Switch Platform पर क्लिक करें.

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

  4. Unity Editor में, File > Build Settings > Player Settings > Other Settings पर क्लिक करें.

  5. Target API level बॉक्स में, कोई वर्शन चुनें.

  6. Scripting backend बॉक्स में, IL2CPP डालें.

  7. Target architectures बॉक्स में, कोई वैल्यू चुनें.

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

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

नया कीस्टोर बनाना

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

  1. Unity Editor में, File > Build settings > Player settings पर क्लिक करें.
  2. पब्लिश करने की सेटिंग सेक्शन में जाकर, कीस्टोर मैनेजर पर क्लिक करें.
    1. Keystore manager विंडो में, Keystore > Create new > Anywhere पर क्लिक करें.
    2. कोई फ़ोल्डर चुनें और कीस्टोर को कोई नाम दें.
    3. पासवर्ड बॉक्स में, कोई पासवर्ड डालें और उसकी पुष्टि करें.
    4. कुंजी जोड़ें पर क्लिक करें.

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

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

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

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

  1. Google Play Console में जाकर, गेम खोलें.

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

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

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

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

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

  1. Unity Editor में, Window > Google Play Games > Setup > Android Setup पर क्लिक करें.

    • कॉन्स्टेंट सेव करने के लिए डायरेक्ट्री फ़ील्ड में, कॉन्स्टेंट फ़ाइल के लिए फ़ोल्डर का नाम डालें.
    • कॉन्स्टेंट क्लास का नाम फ़ील्ड में, बनाने के लिए C# क्लास का नाम डालें. इसमें नेमस्पेस भी शामिल करें.

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

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

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

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

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

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

  2. Unity Editor में, Window > Google Play की गेम सेवाएं > Setup > Nearby Connections Setup पर क्लिक करें.

    • Nearby connection service ID फ़ील्ड में, package_name डालें.

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

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

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

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

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

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

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

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

अगर किसी व्यक्ति ने अपने डिवाइस पर Google Play की गेम सेवाओं का इस्तेमाल कभी नहीं किया है, तो उसे 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 authenticate. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

नतीजे का कोड एक इनम है. इसका इस्तेमाल, पुष्टि न हो पाने की वजह का पता लगाने के लिए किया जा सकता है.

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

  using GooglePlayGames;

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

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

विषय पर जाएं

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

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

AAB फ़ाइल बनाना

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

  1. Unity Editor में, File > Build settings पर क्लिक करें.
  2. Build App Bundle ( Google Play ) को चुनें.

    ज़्यादा जानकारी के लिए, Android की बिल्ड सेटिंग का रेफ़रंस देखें.

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

  4. Unity Editor से 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 API ऐक्सेस करने के लिए, आपको क्लाइंट ऐप्लिकेशन से पुष्टि करने वाला कोड पाना होगा. इसके बाद, इसे अपने वेब सर्वर ऐप्लिकेशन को पास करना होगा. इसके बाद, इस कोड को ऐक्सेस टोकन के लिए एक्सचेंज किया जा सकता है, ताकि अलग-अलग एपीआई को कॉल किया जा सके. वर्कफ़्लो के बारे में जानकारी के लिए, वेब के लिए 'Google से साइन इन करें' सुविधा लेख पढ़ें.

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

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

    1. Unity हब में, Google Play Games for Unity को सेट अप करें और पुष्टि करें.
    2. Unity Hub में, Window > Google Play Games > Setup > Android Setup पर जाएं.
    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...
    });

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