Google Play की गेम सेवाओं का इस्तेमाल करके, Unity में पुष्टि करें

Android गेम में खिलाड़ियों को साइन इन करने के लिए, Google Play की गेम सेवाओं का इस्तेमाल किया जा सकता है इसे Firebase और Unity पर बनाया गया है. Google Play की गेम सेवाओं का इस्तेमाल करने के लिए, इनसे साइन इन करें Firebase है, तो पहले Google Play Games से प्लेयर में साइन इन करें. इसके बाद, OAuth 2.0 ऑथराइज़ेशन कोड. इसके बाद, ऑथराइज़ेशन कोड को पास करें Firebase क्रेडेंशियल जनरेट करने के लिए PlayGamesAuthProvider, जिसका इस्तेमाल किया जा सकता है Firebase की मदद से पुष्टि करें.

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

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

  1. अपने Unity प्रोजेक्ट में, Firebase कॉन्फ़िगरेशन फ़ाइल और Firebase Unity SDK टूल जोड़ें जैसा कि इसमें बताया गया है Firebase को अपने Unity प्रोजेक्ट में जोड़ें. Android के लिए निर्देशों का पालन करें.

    FirebaseAuth.unitypackage को इंपोर्ट करना न भूलें.

  2. Unity एडिटर में, बिल्ड सेटिंग > प्लेयर सेटिंग > किसी और तरीके से सेटिंग से अपने गेम के Android पैकेज का नाम सेट करें.

  3. इसके बाद, बिल्ड की सेटिंग > प्लेयर सेटिंग > पब्लिश करने की सेटिंग, कोई कीस्टोर और कुंजी चुनें या बनाएं. इनका इस्तेमाल आपके Android डिवाइस पर साइन करने के लिए किया जाएगा पैकेज. Play Games में साइन इन करने के लिए, आपके APK पर साइन किया जाना ज़रूरी है—यह ये शर्तें सिर्फ़ पब्लिशिंग पर ही नहीं, बल्कि आपका गेम.

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

  1. Firebase कंसोल में, Firebase प्रोजेक्ट पर जाएं जिसमें आपने अपना Unity प्रोजेक्ट रजिस्टर किया है.

  2. अपने गेम का SHA-1 फ़िंगरप्रिंट सेटिंग पेज Firebase कंसोल की, Unity में सेट की गई कुंजी का इस्तेमाल करके.

    आपको keytool निर्देश का इस्तेमाल करके, अपनी कुंजी का SHA-1 फ़िंगरप्रिंट मिल सकता है:

    keytool -exportcert -list -v \
        -alias YOUR-KEY-NAME -keystore PATH-TO-KEYSTORE

    इसके अलावा, अपने साइनिंग सर्टिफ़िकेट का SHA हैश आपको gradle signingReport का निर्देश:

    gradlew signingReport

    आपके APK पर इस पासकोड से साइन किया जाना चाहिए. इसमें डेवलपमेंट के दौरान भी हस्ताक्षर होना चाहिए.

  3. साइन इन की सेवा देने वाली कंपनी के तौर पर Google Play Games को चालू करें:

    1. Firebase कंसोल में, Authentication सेक्शन.

    2. अपने प्रोजेक्ट का वेब सर्वर क्लाइंट आईडी और क्लाइंट जनरेट करें और पाएं सीक्रेट:

      1. साइन इन करने का तरीका टैब में जाकर, Google में साइन इन करने की सुविधा चालू करें कंपनी.

      2. Google साइन इन से वेब सर्वर क्लाइंट आईडी और सीक्रेट को कॉपी करें कंपनी.

    3. साइन इन करने का तरीका टैब में, Play Games को चालू करें साइन-इन करने वाली कंपनी को चुनें, और अपने प्रोजेक्ट के वेब सर्वर क्लाइंट आईडी को दर्ज करें और की है, जो आपको आखिरी चरण में मिली थी.

Play Games services को अपने Firebase ऐप्लिकेशन की जानकारी के साथ कॉन्फ़िगर करें

  1. इस Google Play कंसोल, अपना Google Play ऐप्लिकेशन खोलें या नया ऐप्लिकेशन बनाएं.

  2. बढ़ाएं सेक्शन में, Play Games services > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन.

  3. हां, मेरे गेम में पहले से ही Google API का इस्तेमाल हो रहा है पर क्लिक करें. इसके बाद, अपना Firebase चुनें प्रोजेक्ट चुनें और फिर इस्तेमाल करें पर क्लिक करें.

  4. Play Games services कॉन्फ़िगरेशन पेज पर, क्लिक करें क्रेडेंशियल जोड़ें.

    1. गेम सर्वर टाइप चुनें.
    2. OAuth क्लाइंट फ़ील्ड में, अपने प्रोजेक्ट का वेब क्लाइंट आईडी चुनें. होना पक्का करें कि यह वही क्लाइंट आईडी है जिसे आपने चालू करते समय तय किया था Play Games साइन इन.
    3. बदलावों को सेव करें.
  5. अब भी Play Games services कॉन्फ़िगरेशन पेज पर, क्लिक करें फिर से क्रेडेंशियल जोड़ें.

    1. Android टाइप चुनें.
    2. OAuth क्लाइंट फ़ील्ड में, अपने प्रोजेक्ट का Android क्लाइंट आईडी चुनें. (अगर आपको अपना Android क्लाइंट आईडी नहीं दिखता है, तो अपने गेम के Firebase कंसोल में SHA-1 फ़िंगरप्रिंट.)
    3. बदलावों को सेव करें.
  6. इवेंट, उपलब्धियां, और लीडरबोर्ड पेजों पर, किसी भी इवेंट के लिए, Play Games संसाधन जिन्हें आपको अपने गेम के साथ इस्तेमाल करना है (अगर आपको ये संसाधन नहीं चाहिए तो किसी प्लेसहोल्डर एंट्री का तुरंत इस्तेमाल करने के लिए, प्लेसहोल्डर एंट्री बनाई जा सकती है). इसके बाद, किसी भी इवेंट, उपलब्धियां या लीडरबोर्ड पेज पर, संसाधन पाएं और Android संसाधन स्निपेट को कहीं भी कॉपी करें सुविधाजनक. Google Play Games services को सेट अप करने के लिए, आपको स्निपेट की ज़रूरत होगी प्लग इन.

    यहां संसाधनों के स्निपेट का उदाहरण दिया गया है:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    Google Play game services IDs.
    Save this file as res/values/games-ids.xml in your project.
    -->
    <resources>
      <!-- app_id -->
      <string name="app_id" translatable="false">123456789000</string>
      <!-- package_name -->
      <string name="package_name" translatable="false">com.example.game</string>
      <!-- event Wiped Raid -->
      <string name="event_wiped_raid" translatable="false">CgkIpKjv1a4PEAIYBA</string>
    </resources>
    
  7. टेस्टर पेज पर, ऐसे किसी भी उपयोगकर्ता के ईमेल पते जोड़ें जिसे आप गेम को Play वाले ऐप्लिकेशन पर रिलीज़ करने से पहले उसमें साइन इन कर सकें Play Store.

अपने गेम में, Play Games में साइन इन करने की सुविधा इंटिग्रेट करें

  1. इसका सबसे नया वर्शन डाउनलोड करें Unity के लिए Play Games प्लगिन और उसे एक्सट्रैक्ट करें.

  2. प्लगिन के Unity पैकेज को अपने Unity प्रोजेक्ट में इंपोर्ट करें. आप रिलीज़ संग्रह की current-build डायरेक्ट्री में Unity पैकेज.

  3. Play Games प्लगिन को सेट अप करें:

    1. विंडो > पर क्लिक करें Google Play Games > सेटअप > Android सेटअप: Android कॉन्फ़िगरेशन स्क्रीन.
    2. Play Console से मिले Android के संसाधनों के स्निपेट को संसाधनों की परिभाषा फ़ील्ड में.
    3. अपना वेब सर्वर क्लाइंट आईडी चिपकाएं, जो आपने चालू करते समय दिया था Firebase कंसोल में, क्लाइंट आईडी में Play Games में साइन इन करें फ़ील्ड में डालें.
    4. सेटअप पर क्लिक करें.
  4. अपने गेम में, RequestServerAuthCode की मदद से Play Games क्लाइंट को कॉन्फ़िगर करें सेटिंग चालू की गई:

    using GooglePlayGames;
    using GooglePlayGames.BasicApi;
    using UnityEngine.SocialPlatforms;
    using System.Threading.Tasks;
    
    PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
        .RequestServerAuthCode(false /* Don't force refresh */)
        .Build();
    
    PlayGamesPlatform.InitializeInstance(config);
    PlayGamesPlatform.Activate();
    
  5. इसके बाद, जब कोई खिलाड़ी Play Games से साइन इन करने का विकल्प चुनता है, तो Social.localUser.Authenticate():

    Social.localUser.Authenticate((bool success) => {
      // handle success or failure
    });
    

Firebase की मदद से पुष्टि करें

अपने गेम में Play Games में साइन इन करने को जोड़ने के बाद, आप इससे मिले ऑथराइज़ेशन कोड का इस्तेमाल कर सकते हैं Play Games की सेवाओं को Firebase की मदद से पुष्टि करनी होगी.

  1. Play Games का इस्तेमाल करके खिलाड़ी के साइन इन करने के बाद, साइन इन करें जारी रखने के हैंडलर में, प्लेयर के खाते के लिए पुष्टि करने का कोड पाएं:

    Social.localUser.Authenticate((bool success) => {
      if (success) {
        authCode = PlayGamesPlatform.Instance.GetServerAuthCode();
      }
    });
    
  2. इसके बाद, Play की गेम सेवाओं से मिले ऑथराइज़ेशन कोड को Firebase के लिए बदलें क्रेडेंशियल पर जाएं और प्लेयर की पुष्टि करने के लिए Firebase क्रेडेंशियल का इस्तेमाल करें:

    Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
    Firebase.Auth.Credential credential =
        Firebase.Auth.PlayGamesAuthProvider.GetCredential(authCode);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });
    

अगले चरण

किसी उपयोगकर्ता के पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बना दिया जाता है और लिंक किया गया हो. यह नया खाता आपके Firebase प्रोजेक्ट बनाया जा सकता है. इसकी मदद से, आपके ऐप्लिकेशन में मौजूद हर ऐप्लिकेशन पर उपयोगकर्ता की पहचान की जा सकती है प्रोजेक्ट.

अपने गेम में, उपयोगकर्ता का Firebase यूआईडी Firebase.Auth.FirebaseUser ऑब्जेक्ट:

Firebase.Auth.FirebaseUser user = auth.CurrentUser;
if (user != null && user.IsValid()) {
  string playerName = user.DisplayName;

  // The user's Id, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server, if you
  // have one; use User.TokenAsync() instead.
  string uid = user.UserId;
}

अपने Firebase रीयल टाइम डेटाबेस और Cloud Storage के सुरक्षा नियमों में, आपको ये चीज़ें मिल सकती हैं auth वैरिएबल से साइन-इन किए हुए उपयोगकर्ता का यूनीक यूज़र आईडी. साथ ही, इसका इस्तेमाल इन कामों के लिए करें तय करें कि उपयोगकर्ता कौनसा डेटा ऐक्सेस कर सकता है.

उपयोगकर्ता के Play Games खिलाड़ी की जानकारी पाने या Play Games की सेवाएं ऐक्सेस करने के लिए, Play Games प्लगिन से मिले एपीआई का इस्तेमाल करें.

किसी उपयोगकर्ता को साइन आउट करने के लिए, SignOut() पर कॉल करें:

auth.SignOut();