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

يرشدك هذا المستند خلال عملية إعداد مشروع Unity لاستخدام ملف الإضافة Google Play Games Plugin for 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، انقر على ملف > إعدادات الإصدار > إعدادات المشغّل > الإعدادات الأخرى.

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

  6. في المربّع Scripting backend (الخلفية لكتابة النصوص البرمجية)، أدخِل IL2CPP.

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

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

إعدادات المشغّل في مشروعك على Unity
إعدادات المشغّل في مشروعك على Unity

إنشاء متجر مفاتيح جديد

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

  1. في Unity Hub، انقر على ملف > إعدادات الإنشاء > إعدادات المشغّل.
  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، انقر على النافذة > ألعاب Google Play > الإعداد > إعداد Android.

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

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

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

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

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

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

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

  2. في Unity Hub، انقر على النافذة > ألعاب Google Play > الإعداد > إعداد ميزة "الربط عن قرب".

    • في الحقل رقم تعريف خدمة "الاتصال عن قرب"، أدخِل 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". هذا هو السلوك المعتمَد في معظم الألعاب التي تستخدم المكوّن الإضافي.

ومع ذلك، إذا أردت إبقاء التنفيذ التلقائي متاحًا لسبب ما (على سبيل المثال، لاستخدامه لإرسال الإنجازات وقوائم الصدارة إلى منصة اجتماعية مختلفة)، يمكنك استخدام المكوّن الإضافي لخدمة "خدمات ألعاب 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" على جهازه، سيتم توجيهه تلقائيًا إلى شاشة الإعداد لمرة واحدة من أجل إنشاء حساب على "ألعاب Google 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).
      }
    }

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

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

  using GooglePlayGames;

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

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

.

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

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

إنشاء ملف AAB

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

  1. في Unity Hub، انقر على ملف > إعدادات الإنشاء.
  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 عليه أو إلى emulator يمكنه تشغيل المشروع المطوَّر.

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

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

للحصول على رمز الوصول من جهة الخادم:

  1. عليك ضبط معرّف عميل الويب لتطبيق الويب المرتبط بلعبتك في Play Console.

  2. يُرجى الاتصال برقم PlayGamesPlatform.Instance.RequestServerSideAccess بعد إتمام مصادقة اللاعب للحصول على رمز الوصول من جهة الخادم.

  3. نقْل هذا الرمز إلى تطبيق الخادم.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

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