इस दस्तावेज़ में, Unity प्रोजेक्ट को सेट अप करने का तरीका बताया गया है, ताकि Unity के लिए Google Play Games प्लगिन का इस्तेमाल किया जा सके. इसमें प्लगिन इंस्टॉल करने और Unity प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया गया है. दस्तावेज़ में, पुष्टि करने वाली सेवा की पुष्टि करने का तरीका भी बताया गया है.
शुरू करने से पहले
सॉफ़्टवेयर से जुड़ी ज़रूरी शर्तें देखें. Play Console सेट अप करें और Unity Editor इंस्टॉल करें.
अपने गेम के लिए Play Console सेट अप करें.
Unity Editor इंस्टॉल करें और Unity में अपना गेम बनाएं.
प्लगिन इंस्टॉल करना
Unity के लिए Google Play Games प्लगिन डाउनलोड और इंस्टॉल करने के लिए, Unity Editor में यह तरीका अपनाएं:
GitHub की रिपॉज़िटरी डाउनलोड करें.
current-buildडायरेक्ट्री में,unitypackageफ़ाइल ढूंढें. यह फ़ाइल, प्लगिन को दिखाती है. उदाहरण के लिए, यह इस तरह दिखनी चाहिए:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Unity प्रोजेक्ट सेट अप करना
प्लेयर सेटिंग में Unity प्रोजेक्ट सेट अप करने के लिए, यह तरीका अपनाएं:
अपने गेम का प्रोजेक्ट खोलें.
Unity Editor में,
unitypackageफ़ाइल को अपने प्रोजेक्ट की ऐसेट में इंपोर्ट करने के लिए, Assets > Import Package > Custom Package पर क्लिक करें.पक्का करें कि आपका मौजूदा बिल्ड प्लैटफ़ॉर्म Android पर सेट हो.
मुख्य मेन्यू में, File > Build Settings पर क्लिक करें.
Android को चुनें और Switch Platform पर क्लिक करें.
Window > Google Play Games में एक नया मेन्यू आइटम दिखेगा. ऐसा न होने पर, Assets > Refresh पर क्लिक करके ऐसेट रीफ़्रेश करें. इसके बाद, बिल्ड प्लैटफ़ॉर्म को फिर से सेट करने की कोशिश करें.
Unity Editor में, File > Build Settings > Player Settings > Other Settings पर क्लिक करें.
Target API level बॉक्स में, कोई वर्शन चुनें.
Scripting backend बॉक्स में,
IL2CPPडालें.Target architectures बॉक्स में, कोई वैल्यू चुनें.
पैकेज का नाम package_name नोट करें. इस जानकारी का इस्तेमाल बाद में किया जा सकता है.
नया कीस्टोर बनाना
अपने क्रेडेंशियल की पुष्टि करने के लिए, आपको एक पासकोड की ज़रूरत होती है. यह तरीका अपनाएं:
- Unity Editor में, File > Build settings > Player settings पर क्लिक करें.
- Publishing settings सेक्शन में, Keystore manager पर क्लिक करें.
- Keystore manager विंडो में, Keystore > Create new > Anywhere पर क्लिक करें.
- कोई फ़ोल्डर चुनें और कीस्टोर के लिए कोई नाम दें.
- Password बॉक्स में, कोई पासवर्ड डालें और उसकी पुष्टि करें.
- पासकोड जोड़ें पर क्लिक करें.
फ़ोल्डर का नाम नोट करें. Google Cloud में क्रेडेंशियल बनाने के लिए, इस नाम का इस्तेमाल किया जा सकता है.
Play Console से Android के संसाधनों को कॉपी करना
अपने गेम के लिए Android संसाधन पाने के लिए, यह तरीका अपनाएं:
Google Play Console में, गेम खोलें.
Play Games Services - Configuration पेज (Grow users > Play Games Services > Setup and management > Configuration) में, Get resources पर क्लिक करें.
Resources विंडो में, Android(XML) टैब पर क्लिक करें.
Android संसाधनों (
AndroidManifest.xml) के कॉन्टेंट को चुनें और कॉपी करें.
अपने Unity प्रोजेक्ट में Android रिसॉर्स जोड़ना
अपने Unity प्रोजेक्ट में ये Android संसाधन जोड़ें:
Unity Editor में, Window > Google Play Games > Setup > Android Setup पर क्लिक करें.
- Directory to save constants फ़ील्ड में, कॉन्स्टैंट फ़ाइल के लिए फ़ोल्डर का नाम डालें.
Constants class name फ़ील्ड में, नेमस्पेस के साथ C# क्लास का नाम डालें.
उदाहरण के लिए, अगर C# क्लास
id.csहै और यह Assets > myproject > scripts > id.cs में मौजूद है. कॉन्स्टैंट क्लास का नामmyproject.scripts.idहो सकता है.Resources definition फ़ील्ड में, Google Play Console से कॉपी किया गया Android संसाधनों का डेटा (
AndroidManifest.xmlफ़ाइल) चिपकाएं.ज़रूरी नहीं: Client ID फ़ील्ड में, लिंक किए गए वेब ऐप्लिकेशन का क्लाइंट आईडी डालें.
Google Cloud से अपने गेम के लिए क्लाइंट आईडी पाने का तरीका जानने के लिए, क्लाइंट आईडी बनाना लेख पढ़ें.
इसकी ज़रूरत सिर्फ़ तब होती है, जब आपके गेम के लिए वेब-आधारित बैकएंड हो और बैकएंड सर्वर को ऐक्सेस टोकन के लिए सर्वर ऑथराइज़ेशन कोड की ज़रूरत हो. इसके अलावा, इसकी ज़रूरत तब भी होती है, जब आपको गेम के अलावा अन्य एपीआई कॉल करने के लिए, प्लेयर के लिए आईडी टोकन की ज़रूरत हो.
सेटअप पर क्लिक करें. इससे आपका गेम, क्लाइंट आईडी के साथ कॉन्फ़िगर हो जाता है. साथ ही, एक C# क्लास जनरेट होती है. इसमें आपके हर Android संसाधन के लिए कॉन्स्टैंट शामिल होते हैं.
Unity Editor में, Window > Google Play Games > Setup > Nearby Connections Setup पर क्लिक करें.
Nearby connection service ID फ़ील्ड में, package_name डालें.
वही package_name इस्तेमाल करें जिसका इस्तेमाल आपने Unity प्रोजेक्ट सेट अप करते समय किया था.
सेटअप पर क्लिक करें.
कोई सोशल प्लैटफ़ॉर्म चुनना
Google Play की गेम सेवाओं का प्लगिन, Unity के सोशल इंटरफ़ेस, को लागू करता है. इससे, अन्य प्लैटफ़ॉर्म के साथ इंटिग्रेट करते समय, उन गेम के साथ प्लगिन की कंपैटिबिलिटी बनी रहती है जो पहले से उस इंटरफ़ेस का इस्तेमाल करते हैं. हालांकि, कुछ सुविधाएं सिर्फ़ Play Games के लिए होती हैं. इन्हें Unity की ओर से उपलब्ध कराए गए स्टैंडर्ड सोशल इंटरफ़ेस के एक्सटेंशन के तौर पर ऑफ़र किया जाता है.
स्टैंडर्ड एपीआई कॉल को Social.Active ऑब्जेक्ट के ज़रिए ऐक्सेस किया जा सकता है. यह ISocialPlatform इंटरफ़ेस का रेफ़रंस होता है. Google Play की गेम सेवाओं के नॉन-स्टैंडर्ड एक्सटेंशन को Social.Active ऑब्जेक्ट को PlayGamesPlatform क्लास में कास्ट करके ऐक्सेस किया जा सकता है. इसमें अतिरिक्त तरीके उपलब्ध होते हैं.
डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म को बदले बिना प्लगिन का इस्तेमाल करना
PlayGamesPlatform.Activate को कॉल करने पर,
Google Play की गेम सेवाएं, आपके डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म के तौर पर काम करने लगती हैं. इसका मतलब है
कि Google Play की गेम सेवाओं का प्लगिन, Social और
Social.Active में मौजूद तरीकों के लिए स्टैटिक कॉल करता है. प्लगिन का इस्तेमाल करने वाले ज़्यादातर गेम के लिए, यह सामान्य व्यवहार है.
हालांकि, अगर किसी वजह से आपको डिफ़ॉल्ट तौर पर काम करने वाली सुविधा को ऐक्सेस करने की ज़रूरत है (उदाहरण के लिए, किसी दूसरे सोशल प्लैटफ़ॉर्म पर उपलब्धियां और लीडरबोर्ड सबमिट करने के लिए), तो डिफ़ॉल्ट तौर पर काम करने वाली सुविधा को बदले बिना, Google Play की गेम सेवाओं के प्लगिन का इस्तेमाल किया जा सकता है. ऐसा करने के लिए:
PlayGamesPlatform.Activateतरीके को कॉल करें.- अगर
Xyzकिसी ऐसे तरीके का नाम है जिसे आपSocialक्लास पर कॉल करते हैं, तोSocial.Xyzको कॉल न करें. इसके बजाय,PlayGamesPlatform.Instance.Xyzको कॉल करें. - Google Play की गेम सेवाओं के साथ इंटरैक्ट करते समय,
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 की गेम सेवाओं से कनेक्शन बनाने की कोशिश अपने-आप की जाती है. अगर कनेक्शन बन जाता है, तो आपके गेम में साइन-इन करने का अनुरोध दिखता है. साथ ही, Unity के लिए Google Play की गेम सेवाओं के प्लगिन का इस्तेमाल किया जा सकता है.
अगर किसी उपयोगकर्ता ने अपने डिवाइस पर Google Play की गेम सेवाओं का इस्तेमाल कभी नहीं किया है, तो Play Games खाता बनाने के लिए, उन्हें एक बार सेटअप करने वाली स्क्रीन पर अपने-आप ले जाया जाता है.
अपनी स्क्रिप्ट के Start तरीके में, पुष्टि करने की कोशिश के नतीजे को सुनें. साथ ही, पुष्टि की स्थिति फ़ेच करें. अगर उपयोगकर्ता की पुष्टि नहीं हुई है, तो Play की गेम सेवाओं की सुविधाएं बंद करें.
अगर 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).
}
}
नतीजा कोड एक enum है. इसका इस्तेमाल, पुष्टि करने में हुई गड़बड़ी की वजह जानने के लिए किया जा सकता है.
अगर आपको Unity के सोशल प्लैटफ़ॉर्म का इस्तेमाल करना है, तो इसके बजाय यह कोड इस्तेमाल किया जा सकता है:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Authenticate से पुष्टि होने की वैल्यू मिलने तक, Google Play की गेम सेवाओं के एपीआई कॉल नहीं किए जा सकते. इसलिए, हमारा सुझाव है कि गेम में स्टैंडबाय स्क्रीन तब तक दिखे, जब तक कॉलबैक को कॉल न किया जाए. इससे यह पक्का किया जा सकेगा कि पुष्टि की प्रोसेस पूरी होने तक, उपयोगकर्ता गेम न खेल पाएं.
प्रोफ़ाइल अपने-आप बनने से रोकना
मेनिफ़ेस्ट फ़ाइल की मदद से, प्रोफ़ाइल अपने-आप बनने के अनुरोधों को बंद किया जा सकता है. इससे, Play की गेम सेवाओं की प्रोफ़ाइल के बिना भी उपयोगकर्ता, Play की गेम सेवाओं की प्रोफ़ाइल बनाने के अनुरोध के बिना गेम लोड कर सकते हैं. ज़्यादा जानकारी के लिए, प्रोफ़ाइल बनाने के विकल्प देखें.
इस सुविधा का इस्तेमाल करने के लिए, पक्का करें कि ये शर्तें पूरी हों:
- डिवाइस में, साइन इन किए गए किसी भी Google खाते के लिए, Play की गेम सेवाओं की प्रोफ़ाइल न हो.
- आपका गेम, Play की गेम सेवाओं
Unity प्लगिन
2.1.0या इसके बाद वाले वर्शन के साथ इंटिग्रेट किया गया हो.
AndroidManifest.xmlफ़ाइल में,com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONटैग को<meta-data>एलिमेंट में और एट्रिब्यूट को<application>एलिमेंट में जोड़ें:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>
इस फ़्लैग को 'सही' पर सेट करने से, Play की गेम सेवाओं को यह जानकारी मिलती है कि आपका गेम, प्रोफ़ाइल बनाने की प्रोसेस को मैनेज करेगा. इसलिए, Play की गेम सेवाएं, डिवाइस पर उन उपयोगकर्ताओं के लिए प्रोफ़ाइल बनाने का यूज़र इंटरफ़ेस अपने-आप नहीं दिखाएंगी जिनके पास Play की गेम सेवाओं की कोई प्रोफ़ाइल नहीं है.
Play की गेम सेवाओं की प्रोफ़ाइल न होने की वजह से, पुष्टि न हो पाने की स्थितियों को मैनेज करने के लिए, PlayGamesPlatform.Instance.IsAuthenticated() का इस्तेमाल किया जा सकता है. प्रोफ़ाइल न बन पाने की वजह से, यह तरीका
falseदिखाता है. इस समस्या को हल करने के लिए, प्रोफ़ाइल बनाने की प्रोसेस शुरू करने के लिए PlayGamesPlatform.Instance.ManuallyAuthenticate() को कॉल करें.if (!PlayGamesPlatform.Instance.IsAuthenticated()) { // The user is unauthenticated, likely due to a missing Play Games profile. // Calling PlayGamesPlatform.Instance.ManuallyAuthenticate() will trigger // the profile creation UI. PlayGamesPlatform.Instance.ManuallyAuthenticate((SignInStatus status) => { // ... }); }सप्रेशन टैग जोड़ने के बाद,
logcatविंडो का इस्तेमाल करके, यह पुष्टि करें कि टैग जोड़ा गया है या नहीं.logcatके आउटपुट में, इस तरह का मैसेज दिखता है: "Game opted out of automatic profile creation prompt (using manifest)".
'Play ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल करना
Google, Play की 'ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल करके, आपके ऐप्लिकेशन के साइनिंग पासकोड को मैनेज करता है और उसे सुरक्षित रखता है. Play की 'ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल करके, Android ऐप्लिकेशन बंडल की ऑप्टिमाइज़ की गई फ़ाइलों पर साइन किया जा सकता है. Play की 'ऐप्लिकेशन साइनिंग' सुविधा से, आपका ऐप्लिकेशन साइनिंग पासकोड, Google के सुरक्षित इन्फ़्रास्ट्रक्चर पर सेव रहता है. Play की 'ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल करने के लिए, आपको सबसे पहले Unity Editor से AAB फ़ाइल बनानी और डाउनलोड करनी होगी. इसके बाद, AAB फ़ाइल को Play Console पर अपलोड किया जा सकता है और इंटरनल टेस्टिंग के लिए रिलीज़ बनाई जा सकती है.
AAB फ़ाइल बनाना
Unity Editor में AAB फ़ाइल बनाने के लिए, यह तरीका अपनाएं:
- Unity Editor में, File > Build settings पर क्लिक करें.
Build App Bundle ( Google Play ) को चुनें.
ज़्यादा जानकारी के लिए, Android Build Settings reference देखें.
Build पर क्लिक करें.
Unity Editor से AAB फ़ाइल डाउनलोड करें.
इंटरनल टेस्टिंग के लिए रिलीज़ बनाना
Play Console में इंटरनल टेस्टिंग के लिए रिलीज़ बनाने और टेस्टर जोड़ने के लिए, यह तरीका अपनाएं:
- Google Play Console में जाकर कोई गेम चुनें.
- Test and release पेज (Testing > Internal testing) पर जाएं.
- Upload पर क्लिक करें और AAB फ़ाइल चुनें.
- Release details फ़ील्ड में, कोई नाम डालें.
- Next पर क्लिक करें और रिलीज़ की जानकारी देखें.
- Save and publish पर क्लिक करें.
Testers टैब पर, ज़्यादा से ज़्यादा 100 टेस्टर जोड़ने के लिए, Create email list पर क्लिक करें.
ज़्यादा जानकारी के लिए, इंटरनल टेस्ट: ज़्यादा से ज़्यादा 100 टेस्टर मैनेज करना लेख पढ़ें.
Feedback URL or email address में, सुझाव/राय देने के लिए, सुझाव/राय वाला यूआरएल या ईमेल पता डालें.
सेव करें पर क्लिक करें.
ऐप्लिकेशन साइनिंग के क्रेडेंशियल की पुष्टि करना
- Google Play Console में जाकर कोई गेम चुनें.
- Test and release पेज (Setup > App signing) पर जाएं.
- ऐप्लिकेशन साइनिंग के क्रेडेंशियल की पुष्टि करें.
प्रोजेक्ट बनाना और उसे चलाना
इस समय, गेम का प्रोजेक्ट बनाया और चलाया जा सकता है. गेम शुरू होने पर, आपको पुष्टि करने की कोशिश अपने-आप दिखेगी.
आपको Android पर काम करने वाला कोई ऐसा डिवाइस चाहिए जिसमें यूएसबी डीबग करने की सुविधा चालू हो. इसके अलावा, ऐसा एम्युलेटर भी इस्तेमाल किया जा सकता है जिस पर बनाया गया प्रोजेक्ट चलाया जा सके.
सर्वर ऑथेंटिकेशन कोड वापस पाना
मौजूदा प्लेयर की ओर से, बैकएंड वेब सर्वर पर Google के एपीआई ऐक्सेस करने के लिए, आपको क्लाइंट ऐप्लिकेशन से ऑथेंटिकेशन कोड पाना होगा. इसके बाद, इसे अपने वेब सर्वर ऐप्लिकेशन को पास करना होगा. इसके बाद, अलग-अलग एपीआई को कॉल करने के लिए, कोड को ऐक्सेस टोकन के लिए एक्सचेंज किया जा सकता है. वर्कफ़्लो के बारे में जानकारी के लिए, वेब के लिए Google से साइन इन करना लेख पढ़ें.
सर्वर साइड ऐक्सेस कोड पाने के लिए:
- Play Console में, अपने गेम के लिए वेब क्लाइंट आईडी जोड़ें.
- Google Play Console में, अपना गेम चुनें.
- Configuration पेज (Grow users > Play Games Services > Setup and Management > Configuration) में, Add credential पर क्लिक करें.
- Add credential पेज पर, Game server को चुनें.
- OAuth 2.0 क्लाइंट आईडी जनरेट करें.
- क्लाइंट आईडी की वैल्यू नोट करें. आपको यह वैल्यू बाद में देनी होगी.
Unity Hub में वेब क्लाइंट आईडी जोड़ें.
- Unity Hub में, Unity के लिए Google Play Games सेट अप करें और पुष्टि करें.
- Unity Hub में, Window > Google Play Games > Setup > Android Setup पर जाएं.
- क्लाइंट आईडी की वैल्यू डालें.
अतिरिक्त दायरों के लिए, सर्वर ऑथराइज़ेशन कोड वापस पाएं.
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 की गेम सेवाओं के एपीआई का इस्तेमाल करके, अपने गेम में सुविधाएं जोड़ना:
Unity के लिए Recall API (यह सुविधा, Unity प्लगिन के वर्शन v11 और इसके बाद वाले वर्शन के लिए ही उपलब्ध है)