إعداد "ألعاب Google Play" لمحرك Unity وتسجيل الدخول

يقدّم لك هذا المستند إرشادات حول كيفية إعداد مشروع Unity لاستخدام المكوّن الإضافي "ألعاب Google Play" لمحرّك Unity. ستتعرّف على كيفية تثبيت المكوّن الإضافي وإعداد مشروع Unity. يتناول المستند أيضًا كيفية التحقّق من خدمة تسجيل الدخول.

قبل البدء

راجِع متطلبات البرامج. إعداد Play Console وتثبيت Unity Hub

تثبيت المكوّن الإضافي

لتنزيل وتثبيت المكوّن الإضافي "ألعاب Google Play" لمحرّك Unity، اتّبِع الخطوات التالية في Unity Hub:

  1. نزِّل مستودع GitHub.

  2. في الدليل current-build، ابحث عن الملف unitypackage. يمثّل هذا الملف المكوّن الإضافي. على سبيل المثال، يجب أن يكون مشابهاً لما يلي:

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

إعداد مشروع Unity

لإعداد مشروع Unity في إعدادات المشغّل، اتّبِع الخطوات التالية:

  1. افتح مشروع لعبتك.

  2. في Unity Hub، انقر على مواد العرض > استيراد حزمة > حزمة مخصّصة لاستيراد ملف unitypackage إلى مواد عرض مشروعك.

  3. تأكَّد من ضبط منصة الإصدار الحالية على Android.

    1. في القائمة الرئيسية، انقر على ملف (File) > إعدادات الإنشاء (Build Settings).

    2. اختَر Android وانقر على تبديل النظام الأساسي.

    3. يجب أن يظهر عنصر قائمة جديد ضمن النافذة > ألعاب Google Play. إذا لم يكن كذلك، أعِد تحميل مواد العرض بالنقر على مواد العرض > إعادة التحميل، ثم حاوِل ضبط منصة الإصدار مرة أخرى.

  4. في Unity Hub، انقر على ملف (File) > إعدادات الإنشاء (Build Settings) > إعدادات المشغّل (Player Settings) > إعدادات أخرى (Other Settings).

  5. في مربّع مستوى واجهة برمجة التطبيقات المستهدَف، اختَر إصدارًا.

  6. في المربّع Scripting backend، أدخِل IL2CPP.

  7. في مربّع البُنى المستهدَفة، اختَر قيمة.

  8. دوِّن اسم الحزمة package_name.يمكنك استخدام هذه المعلومات لاحقًا.

إعدادات اللاعب في مشروع Unity
إعدادات اللاعب في مشروع Unity

إنشاء ملف تخزين مفاتيح جديد

لإثبات صحة بيانات الاعتماد، تحتاج إلى مفتاح. اتبع هذه الخطوات:

  1. في Unity Hub، انقر على ملف (File) > إعدادات الإنشاء (Build settings) > إعدادات المشغّل (Player settings).
  2. في قسم إعدادات النشر، انقر على إدارة ملفات تخزين المفاتيح.
    1. في نافذة إدارة ملفات تخزين المفاتيح، انقر على ملف تخزين المفاتيح > إنشاء جديد > في أي مكان.
    2. اختَر مجلدًا وقدِّم اسمًا لملف تخزين المفاتيح.
    3. في مربّع كلمة المرور، أدخِل كلمة مرور وأكِّدها.
    4. انقر على إضافة مفتاح.

دوِّن اسم المجلد. يمكنك استخدام هذا الاسم من أجل إنشاء بيانات اعتماد في Google Cloud.

نسخ موارد Android من Play Console

يتضمّن كل إنجاز ولوحة صدارة وحدث تنشئه في Play Console أحد موارد Android التي تستخدمها عند إعداد مشروع Unity.

للحصول على مراجع Android الخاصة بلعبتك، اتّبِع الخطوات التالية:

  1. في Google Play Console، افتح اللعبة.

  2. في صفحة الإعدادات ضمن "خدمات ألعاب Google Play" (النمو > خدمات ألعاب Google Play > الإعداد والإدارة > الإعدادات)، انقر على الحصول على مراجع.

  3. في نافذة الموارد، انقر على علامة التبويب Android(XML).

  4. اختَر محتوى مراجع Android (AndroidManifest.xml) وانسَخه.

إضافة موارد Android إلى مشروع Unity

أضِف موارد Android التالية إلى مشروع Unity:

  1. في Unity Hub، انقر على Window > Google Play Games > Setup > Android Setup.

    • في حقل دليل حفظ الثوابت، أدخِل اسم المجلد لملف الثوابت.
    • في حقل اسم فئة الثوابت، أدخِل اسم فئة C# التي تريد إنشاءها، بما في ذلك مساحة الاسم.

      على سبيل المثال، إذا كان صف C# هو id.cs وموجودًا ضمن Assets > myproject > scripts > id.cs. يمكن أن يكون اسم فئة الثوابت myproject.scripts.id.

    • في حقل تعريف الموارد، الصِق بيانات موارد Android (ملف AndroidManifest.xml) التي نسختها من Google Play Console.

    • اختياري: في حقل معرّف العميل، أدخِل معرّف العميل لتطبيق الويب المرتبط.

      للحصول على معرّف العميل الخاص بلعبتك من Google Cloud، اطّلِع على إنشاء معرّفات العملاء.

      لا تحتاج إلى ذلك إلا إذا كان لديك خادم خلفي مستند إلى الويب للعبتك وكنت بحاجة إلى رمز مصادقة الخادم لاستبداله برمز مميّز للوصول من خلال الخادم الخلفي، أو إذا كنت بحاجة إلى رمز مميّز للمعرّف كي يتمكّن اللاعب من إجراء طلبات أخرى غير متعلّقة بالألعاب إلى واجهات برمجة التطبيقات.

    • انقر على إعداد. يؤدي ذلك إلى ضبط لعبتك باستخدام رقم تعريف العميل وإنشاء فئة C# تحتوي على ثوابت لكل مورد من موارد Android.

  2. في Unity Hub، انقر على Window > Google Play Games > Setup > Nearby Connections Setup.

    • في حقل معرّف خدمة Nearby Connections، أدخِل package_name.

      استخدِم package_name نفسه الذي استخدمته في إعداد مشروع Unity.

    • انقر على إعداد.

اختيار منصة تواصل اجتماعي

تنفّذ إضافة "خدمات ألعاب Google Play" واجهة التواصل الاجتماعي في Unity، وذلك لضمان التوافق مع الألعاب التي تستخدم هذه الواجهة عند الدمج مع منصات أخرى. ومع ذلك، تتفرّد "ألعاب Play" ببعض الميزات التي يتم تقديمها كإضافات إلى واجهة التواصل الاجتماعي العادية التي يوفّرها محرّك Unity.

يمكن الوصول إلى طلبات البيانات من واجهة برمجة التطبيقات العادية من خلال العنصر Social.Active، وهو مرجع إلى واجهة ISocialPlatform. يمكن الوصول إلى إضافات "خدمات ألعاب Google Play" غير العادية من خلال تحويل العنصر Social.Active إلى فئة PlayGamesPlatform، حيث تتوفّر الطرق الإضافية.

استخدام المكوّن الإضافي بدون إلغاء المنصة التلقائية على وسائل التواصل الاجتماعي

عند طلب PlayGamesPlatform.Activate، تصبح "خدمات ألعاب Google Play" هي التنفيذ التلقائي لمنصة التواصل الاجتماعي، ما يعني أنّ الطلبات الثابتة للطُرق في Social وSocial.Active سيتم تنفيذها من خلال المكوّن الإضافي "خدمات ألعاب Google Play". هذا هو السلوك المعتاد لمعظم الألعاب التي تستخدم المكوّن الإضافي.

ومع ذلك، إذا أردت لأي سبب إبقاء التنفيذ التلقائي متاحًا (على سبيل المثال، لاستخدامه في إرسال الإنجازات وقوائم الصدارة إلى منصة تواصل اجتماعي مختلفة)، يمكنك استخدام إضافة "خدمات ألعاب Google Play" بدون إلغاء التنفيذ التلقائي. ولإجراء ذلك:

  1. عدم الاتصال بالرقم PlayGamesPlatform.Activate
  2. إذا كان Xyz هو اسم طريقة عليك استدعاؤها في الفئة Social، لا تستدعِ Social.Xyz. بدلاً من ذلك، اتّصِل بالرقم PlayGamesPlatform.Instance.Xyz
  3. لا تستخدِم Social.Active عند التفاعل مع "خدمات ألعاب Google Play". بدلاً من ذلك، استخدِم 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 باستخدام خدمة تسجيل الدخول عند فتح لعبتك. في حال نجاح عملية الربط، ستعرض لعبتك طلبًا بتسجيل الدخول وستكون جاهزة لاستخدام إضافة "خدمات ألعاب Google Play" في Unity.

إذا لم يسبق للمستخدم استخدام "خدمات ألعاب Google Play" على جهازه، سيتم تلقائيًا نقله إلى شاشة الإعداد لمرة واحدة لإنشاء حساب على "ألعاب Play".

في طريقة 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 sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

رمز النتيجة هو تعداد يمكنك استخدامه لتحديد سبب تعذُّر تسجيل الدخول.

إذا كنت تفضّل استخدام منصة Social من Unity، يمكنك بدلاً من ذلك استخدام الرمز التالي:

  using GooglePlayGames;

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

لا يمكنك إجراء أي طلبات إلى واجهة برمجة التطبيقات في "خدمات ألعاب Google Play" إلى أن تحصل على قيمة إرجاع ناجحة من Authenticate. نتيجةً لذلك، ننصح الألعاب بعرض شاشة الاستعداد إلى أن يتم استدعاء دالة الرجوع لضمان عدم تمكّن المستخدمين من بدء اللعب قبل اكتمال عملية المصادقة.

استخدام ميزة "توقيع التطبيق" من Play

تُدير Google مفتاح توقيع تطبيقك وتحميه باستخدام ميزة "توقيع التطبيق" من Play. يمكنك استخدام ميزة "توقيع التطبيق" من Play لتوقيع ملفات مجموعة حزمات تطبيق Android المحسَّنة والمخصّصة للتوزيع. تخزّن ميزة "توقيع التطبيق" من Play مفتاح توقيع التطبيق على البنية الأساسية الآمنة لدى Google. لاستخدام ميزة "توقيع التطبيق" من Play، عليك أولاً إنشاء ملف AAB وتنزيله من Unity Hub. يمكنك بعد ذلك تحميل ملف AAB إلى Play Console وإنشاء إصدار للاختبار الداخلي.

إنشاء ملف AAB

لإنشاء ملف AAB في Unity Hub، اتّبِع الخطوات التالية:

  1. في Unity Hub، انقر على ملف (File) > إعدادات الإنشاء (Build settings).
  2. اختَر إنشاء حِزمة تطبيق ( Google Play).

    لمزيد من المعلومات، يُرجى الاطّلاع على مرجع إعدادات الإصدار على Android.

  3. انقر على إنشاء.

  4. نزِّل ملف AAB من Unity Hub.

إنشاء إصدار للاختبار الداخلي

لإنشاء إصدار مخصّص للاختبار الداخلي وإضافة مختبِرين في Play Console، اتّبِع الخطوات التالية:

  1. في Google Play Console، اختَر لعبة.
  2. انتقِل إلى صفحة الاختبار والإصدار (الاختبار > الاختبار الداخلي).
  3. انقر على تحميل واختَر ملف AAB.
  4. في حقل تفاصيل الإصدار، أدخِل اسمًا.
  5. انقر على التالي وراجِع تفاصيل الإصدار.
  6. انقر على حفظ ونشر.
  7. في علامة التبويب المختبِرون، انقر على إنشاء قائمة عناوين بريد إلكتروني لإضافة ما يصل إلى 100 مختبِر.

    لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الاختبار الداخلي: إدارة ما يصل إلى 100 مختبِر.

  8. في عنوان URL للملاحظات أو عنوان البريد الإلكتروني، أدخِل عنوان URL للملاحظات أو عنوان بريد إلكتروني لتقديم الملاحظات.

  9. انقر على حفظ.

تأكيد بيانات اعتماد "توقيع التطبيق"

  1. في Google Play Console، اختَر لعبة.
  2. انتقِل إلى صفحة الاختبار والإصدار(الإعداد > توقيع التطبيق).
  3. تأكَّد من صحة بيانات اعتماد ميزة "توقيع التطبيق".

إنشاء المشروع وتشغيله

يمكنك إنشاء مشروع اللعبة وتشغيله في هذه المرحلة. عند بدء اللعبة، ستظهر لك محاولة تسجيل الدخول التلقائي.

يجب أن يتوفّر لديك جهاز فعلي يعمل بنظام التشغيل Android مع تفعيل خيار تصحيح أخطاء USB أو محاكي يمكنه تشغيل المشروع الذي تم تطويره.

استرداد رموز مصادقة الخادم

للوصول إلى Google APIs على خادم ويب خلفي نيابةً عن اللاعب الحالي، عليك الحصول على رمز مصادقة من تطبيق العميل وتمريره إلى تطبيق خادم الويب. يمكن بعد ذلك استبدال الرمز المميز برمز وصول لإجراء طلبات إلى واجهات برمجة التطبيقات المختلفة. للحصول على معلومات حول سير العمل، يُرجى الاطّلاع على تسجيل الدخول باستخدام Google على الويب.

للحصول على رمز الوصول من جهة الخادم، اتّبِع الخطوات التالية:

  1. أضِف معرّف عميل الويب الخاص بلعبتك في Play Console.
    1. في Google Play Console، اختَر لعبتك.
    2. في صفحة الإعدادات (زيادة عدد المستخدمين > خدمات ألعاب Google Play > الإعداد والإدارة > الإعدادات)، انقر على إضافة بيانات اعتماد.
    3. في صفحة إضافة بيانات اعتماد، اختَر خادم اللعبة.
    4. إنشاء معرّف عميل OAuth 2.0
    5. سجِّل قيمة معرّف العميل. عليك تقديم هذه القيمة لاحقًا.
  2. أضِف معرّف عميل الويب إلى Unity Hub.

    1. في Unity Hub، اضبط إعدادات "ألعاب Google Play" في 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...
    });

إعداد الميزات وإضافتها