इस दस्तावेज़ में, Unity प्रोजेक्ट को सेट अप करने का तरीका बताया गया है, ताकि Unity के लिए Google Play Games प्लगिन का इस्तेमाल किया जा सके. आपको प्लगिन इंस्टॉल करने और Unity प्रोजेक्ट को कॉन्फ़िगर करने का तरीका पता चलता है. इस दस्तावेज़ में, पुष्टि करने वाली सेवा की पुष्टि करने का तरीका भी बताया गया है.
शुरू करने से पहले
सॉफ़्टवेयर से जुड़ी ज़रूरी शर्तें देखें. Play Console सेट अप करें और Unity Hub इंस्टॉल करें.
अपने गेम के लिए Play Console सेट अप करें.
Unity Hub इंस्टॉल करें और Unity में अपना गेम बनाएं.
प्लगिन इंस्टॉल करना
Unity के लिए Google Play Games प्लगिन को डाउनलोड और इंस्टॉल करने के लिए, Unity Hub में यह तरीका अपनाएं:
GitHub repo डाउनलोड करें.
current-buildडायरेक्ट्री में,unitypackageफ़ाइल ढूंढें. यह फ़ाइल प्लगिन के बारे में जानकारी देती है. उदाहरण के लिए, यह इस तरह दिखना चाहिए:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Unity प्रोजेक्ट सेट अप करना
प्लेयर सेटिंग में Unity प्रोजेक्ट सेट अप करने के लिए, यह तरीका अपनाएं:
अपना गेम प्रोजेक्ट खोलें.
Unity Hub में, ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज पर क्लिक करें. इससे
unitypackageफ़ाइल को आपके प्रोजेक्ट की ऐसेट में इंपोर्ट किया जा सकेगा.पक्का करें कि आपका मौजूदा बिल्ड प्लैटफ़ॉर्म Android पर सेट हो.
मुख्य मेन्यू में, फ़ाइल > बिल्ड सेटिंग पर क्लिक करें.
Android को चुनें और प्लैटफ़ॉर्म बदलें पर क्लिक करें.
Window > Google Play Games में एक नया मेन्यू आइटम होना चाहिए. अगर ऐसा नहीं होता है, तो ऐसेट > रीफ़्रेश करें पर क्लिक करके ऐसेट रीफ़्रेश करें. इसके बाद, बिल्ड प्लैटफ़ॉर्म को फिर से सेट करने की कोशिश करें.
Unity Hub में, File > Build Settings > Player Settings > Other Settings पर क्लिक करें.
टारगेट एपीआई लेवल बॉक्स में, कोई वर्शन चुनें.
स्क्रिप्टिंग बैकएंड बॉक्स में,
IL2CPPडालें.टारगेट आर्किटेक्चर बॉक्स में, कोई वैल्यू चुनें.
पैकेज का नाम package_name नोट करें.इस जानकारी का इस्तेमाल बाद में किया जा सकता है.
नया कीस्टोर बनाना
अपने क्रेडेंशियल की पुष्टि करने के लिए, आपको एक कुंजी की ज़रूरत होगी. यह तरीक़ा अपनाएँ:
- Unity Hub में, File > Build settings > Player settings पर क्लिक करें.
- पब्लिश करने की सेटिंग सेक्शन में जाकर, कीस्टोर मैनेजर पर क्लिक करें.
- कीस्टोर मैनेजर विंडो में, कीस्टोर > नया बनाएं > कहीं भी पर क्लिक करें.
- कोई फ़ोल्डर चुनें और कीस्टोर को कोई नाम दें.
- पासवर्ड बॉक्स में, कोई पासवर्ड डालें और उसकी पुष्टि करें.
- कुंजी जोड़ें पर क्लिक करें.
फ़ोल्डर का नाम नोट करें. इस नाम का इस्तेमाल, Google Cloud में क्रेडेंशियल बनाने के लिए किया जा सकता है.
Play Console से Android संसाधनों को कॉपी करना
Play Console में बनाए गए हर अचीवमेंट, लीडरबोर्ड, और इवेंट में एक Android संसाधन शामिल होता है. इसका इस्तेमाल Unity प्रोजेक्ट सेट अप करते समय किया जाता है.
अपने गेम के लिए Android संसाधन पाने के लिए, यह तरीका अपनाएं:
Google Play Console में जाकर, गेम खोलें.
Play की गेम सेवाएं - कॉन्फ़िगरेशन पेज (आगे बढ़ाएं > Play की गेम सेवाएं > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन) पर जाकर, संसाधन पाएं पर क्लिक करें.
संसाधन विंडो में, Android(XML) टैब पर क्लिक करें.
Android संसाधनों (
AndroidManifest.xml) के कॉन्टेंट को चुनें और कॉपी करें.
अपने Unity प्रोजेक्ट में Android संसाधन जोड़ना
अपने Unity प्रोजेक्ट में ये Android संसाधन जोड़ें:
Unity Hub में, 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 संसाधन के लिए कॉन्स्टेंट होते हैं.
Unity Hub में, Window > Google Play Games > 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 Games की सेवाओं के नॉन-स्टैंडर्ड एक्सटेंशन को ऐक्सेस करने के लिए, Social.Active ऑब्जेक्ट को PlayGamesPlatform क्लास में कास्ट करें. यहां अतिरिक्त तरीके उपलब्ध हैं.
डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म को बदले बिना प्लगिन का इस्तेमाल करना
PlayGamesPlatform.Activate को कॉल करने पर, Google Play की गेम सेवाएं आपके डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म के तौर पर लागू हो जाती हैं. इसका मतलब है कि Google Play Games Services प्लगिन, Social और Social.Active में मौजूद तरीकों के लिए स्टैटिक कॉल करता है. प्लगिन का इस्तेमाल करने वाले ज़्यादातर गेम के लिए, यह तरीका सही है.
हालांकि, अगर आपको किसी वजह से डिफ़ॉल्ट तौर पर लागू की गई सुविधा को ऐक्सेस करना है, तो Google Play Games Services प्लगिन का इस्तेमाल किया जा सकता है. जैसे, उपलब्धियों और लीडरबोर्ड को किसी दूसरे सोशल प्लैटफ़ॉर्म पर सबमिट करने के लिए. इसके लिए, डिफ़ॉल्ट प्लगिन को बदलने की ज़रूरत नहीं है. ऐसा करने के लिए:
PlayGamesPlatform.Activateतरीके को कॉल करें.- अगर
Xyz,Socialक्लास में कॉल किया जाने वाला कोई तरीका है, तोSocial.Xyzको कॉल न करें. इसके बजाय,PlayGamesPlatform.Instance.Xyzपर कॉल करें. - 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 Hub से AAB फ़ाइल बनानी और डाउनलोड करनी होगी. इसके बाद, AAB फ़ाइल को Play Console पर अपलोड करें और इंटरनल टेस्टिंग के लिए रिलीज़ बनाएं.
AAB फ़ाइल बनाना
Unity Hub में AAB फ़ाइल बनाने के लिए, यह तरीका अपनाएं:
- Unity Hub में, File > Build settings पर क्लिक करें.
Build App Bundle ( Google Play ) को चुनें.
ज़्यादा जानकारी के लिए, Android की बिल्ड सेटिंग का रेफ़रंस देखें.
बनाएं पर क्लिक करें.
Unity Hub से AAB फ़ाइल डाउनलोड करें.
कंपनी के जांचकर्ताओं के लिए उपलब्ध टेस्टिंग रिलीज़ बनाना
Play Console में, इंटरनल टेस्टिंग के लिए रिलीज़ बनाने और टेस्टर जोड़ने के लिए, यह तरीका अपनाएं:
- Google Play Console में जाकर कोई गेम चुनें.
- टेस्ट और रिलीज़ करें पेज पर जाएं (टेस्टिंग > इंटरनल टेस्टिंग).
- अपलोड करें पर क्लिक करें और AAB फ़ाइल चुनें.
- रिलीज़ की जानकारी फ़ील्ड में, नाम डालें.
- आगे बढ़ें पर क्लिक करें और रिलीज़ की जानकारी देखें.
- सहेजें और प्रकाशित करें क्लिक करें.
टेस्टर टैब पर, ईमेल सूची बनाएं पर क्लिक करके, ज़्यादा से ज़्यादा 100 टेस्टर जोड़ें.
ज़्यादा जानकारी के लिए, इंटरनल टेस्ट: इसके तहत, 100 टेस्टर जांच में शामिल हो सकते हैं पर जाएं.
सुझाव/राय देने या शिकायत करने के लिए, सुझाव/राय देने या शिकायत करने के लिए यूआरएल या ईमेल पता में, सुझाव/राय देने या शिकायत करने के लिए यूआरएल या ईमेल पता डालें.
सेव करें पर क्लिक करें.
ऐप्लिकेशन साइन करने के क्रेडेंशियल की पुष्टि करना
- Google Play Console में जाकर कोई गेम चुनें.
- जांच करें और रिलीज़ करें पेज पर जाएं (सेटअप > ऐप्लिकेशन साइनिंग).
- ऐप्लिकेशन साइनिंग के क्रेडेंशियल की पुष्टि करें.
प्रोजेक्ट को बनाएं और चलाएं
इस समय, गेम प्रोजेक्ट बनाया और चलाया जा सकता है. गेम शुरू होने पर, आपको पुष्टि करने की प्रोसेस अपने-आप शुरू होने की सूचना दिखेगी.
आपके पास Android पर चलने वाला कोई ऐसा डिवाइस होना चाहिए जिसमें यूएसबी डीबगिंग की सुविधा चालू हो. इसके अलावा, आपके पास ऐसा एम्युलेटर भी होना चाहिए जो बनाए गए प्रोजेक्ट को चला सके.
सर्वर की पुष्टि करने वाले कोड वापस पाना
मौजूदा प्लेयर की ओर से बैकएंड वेब सर्वर पर Google API ऐक्सेस करने के लिए, आपको क्लाइंट ऐप्लिकेशन से पुष्टि करने का कोड पाना होगा. इसके बाद, इसे अपने वेब सर्वर ऐप्लिकेशन को पास करना होगा. इसके बाद, इस कोड को ऐक्सेस टोकन के बदले में बदला जा सकता है, ताकि अलग-अलग एपीआई को कॉल किया जा सके. वर्कफ़्लो के बारे में जानकारी के लिए, वेब के लिए 'Google से साइन इन करें' लेख पढ़ें.
सर्वर साइड ऐक्सेस कोड पाने के लिए:
- Play Console में, अपने गेम के लिए वेब क्लाइंट आईडी जोड़ें.
- Google Play Console में जाकर, अपना गेम चुनें.
- कॉन्फ़िगरेशन पेज (उपयोगकर्ताओं की संख्या बढ़ाएं > Play की गेम सेवाएं > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन) पर जाकर, क्रेडेंशियल जोड़ें पर क्लिक करें.
- क्रेडेंशियल जोड़ें पेज पर, गेम सर्वर चुनें.
- OAuth 2.0 क्लाइंट आईडी जनरेट करें.
- क्लाइंट आईडी की वैल्यू नोट करें. आपको यह वैल्यू बाद में देनी होगी.
Unity Hub में वेब क्लाइंट आईडी जोड़ें.
- Unity हब में, Google Play Games for Unity सेट अप करें और पुष्टि करें.
- Unity Hub में, Window > Google Play की गेम सेवाएं > सेटअप > Android सेटअप पर जाएं.
- क्लाइंट आईडी की वैल्यू डालें.
ज़्यादा स्कोप के लिए, सर्वर का अनुमति कोड वापस पाएं.
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... });
सुविधाएं सेट अप करना और उन्हें जोड़ना
Play Games की सेवाओं से जुड़े फ़ीचर चालू करें.
Play की गेम सेवाओं के एपीआई का इस्तेमाल करके, अपने गेम में ये सुविधाएं जोड़ें:
Unity के लिए Recall API (यह सिर्फ़ Unity प्लगिन के v11 और इसके बाद के वर्शन के साथ काम करता है)