بدء استخدام المكوّن الإضافي "ألعاب Google Play" في Unity

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

قبل البدء

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

  1. احصل على المكون الإضافي باستخدام أحد الخيارات التالية:

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

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. افتح مشروع لعبتك في Unity.

  4. استورد ملف unitypackage إلى أصول مشروعك بالنقر على عنصر القائمة مواد العرض > استيراد الحزمة > الحزمة المخصصة.

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

    1. في القائمة الرئيسية، انقر على ملف > إعدادات الإصدار....

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

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

الحصول على مراجع Android من Play Console

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

  1. يمكنك الحصول على موارد Android الخاصة بلعبتك.

    1. في Play Console، افتح مشروع "خدمات ألعاب Play" للعبتك.

    2. انقر على علامة التبويب الإنجازات، ثم انقر على الحصول على الموارد.

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

    4. اختَر محتوى XML وانسخه.

إعداد مشروع Unity

  1. أضِف موارد Android إلى مشروع Unity الخاص بك.

    1. في Unity، انقر على ** Window > ألعاب Google Play > إعداد... > إعداد Android **.

    2. أكمِل العناصر التالية في نوافذ الإعداد:

    3. دليل حفظ الثوابت: مجلد ملف الثوابت.

    4. اسم فئة الثوابت: اسم فئة C# المطلوب إنشاؤها، بما في ذلك مساحة الاسم.

    5. تعريف الموارد: ألصِق بيانات موارد Android من Play Console هنا.

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

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

إعداد Android

عليك إعداد مسار تثبيت حزمة تطوير البرامج (SDK) لنظام التشغيل Android في Unity. يمكنك العثور عليه من قائمة التفضيلات، ضمن قسم الأدوات الخارجية.

لإعداد لعبة Unity لتشغيلها باستخدام "ألعاب Google Play على Android"، يجب أولاً فتح "مدير حزمة تطوير البرامج (SDK) لنظام التشغيل Android" والتأكّد من تنزيل الحِزم التالية. بناءً على ما إذا كنت تستخدم مدير SDK من Android Studio أو تستخدم مدير SDK المستقل، قد يكون اسم المكونات مختلفًا. - خدمات Google Play - مكتبة دعم Android - مستودع Maven المحلي لمكتبات الدعم (يُعرف أيضًا باسم "مستودع دعم Android") - مستودع Google - الإصدار 6.0 من Android (واجهة برمجة التطبيقات 23) (لا يؤثر ذلك في الإصدار الأدنى من حزمة تطوير البرامج (SDK)).

بعد ذلك، اضبط اسم حزمة لعبتك. لإجراء ذلك، انقر على File (ملف) > Build Settings (إعدادات الإصدار)، واختَر النظام الأساسي Android ثم انقر على Player Settings (إعدادات المشغّل) لعرض نافذة Unity's Player Settings (إعدادات مشغّل الفيديو في Unity). في هذه النافذة، ابحث عن الإعداد معرِّف الحزمة ضمن إعدادات أخرى. أدخِل اسم الحزمة هناك (على سبيل المثال com.example.my.awesome.game).

لتسجيل الدخول إلى خدمات ألعاب Play، يجب توقيع ملف APK، وتأكد من توقيعه باستخدام الشهادة الصحيحة، أي الشهادة التي تتوافق مع الملف المرجعي لشهادة SHA1 التي أدخلتها في وحدة تحكم مطوّري البرامج أثناء الإعداد.

بعد ذلك، انقر على عنصر القائمة نافذة |ألعاب Google Play|الإعداد - إعداد Android. سيؤدي ذلك إلى عرض شاشة إعداد Android.

أدخِل اسم فئة "Constants". هذا هو اسم الفئة المؤهّلة بالكامل التي سيتم تعديلها (أو إنشاؤها) وتتضمّن معرّفات موارد اللعبة. صيغة الاسم هي <namespace>.<classname>. على سبيل المثال، AwesomeGame.GPGSIds

الصق بيانات تعريف المورد. هذه بيانات XML من Google Play Developer Console والتي تحتوي على معرّفات الموارد بالإضافة إلى معرّف التطبيق لنظام Android.

يمكن العثور على هذه البيانات في Google Play Console من خلال النقر على "الحصول على الموارد" على أيٍّ من صفحات الموارد (مثل الإنجازات أو لوحات الصدارة)، ثم النقر على Android.

بعد لصق البيانات في مربّع النص، انقر على زر الإعداد.

ملاحظة: إذا كنت تستخدم تطبيق ويب أو خادم خلفية مع لعبتك، فيمكنك ربط تطبيق الويب باللعبة لتفعيل الحصول على الرمز المميز للاعب و/أو عنوان البريد الإلكتروني. للقيام بذلك، اربط تطبيق ويب باللعبة في وحدة تحكم مطوّري البرامج في Google Play، وأدخل معرّف العميل لتطبيق الويب في مربع حوار الإعداد.

إرشادات إضافية حول إنشاء ملف لـ Android على نظام التشغيل Windows

إذا كنت تستخدم نظام التشغيل Windows، يجب التأكد من إمكانية وصول Unity إلى تثبيت Java SDK. ولإجراء ذلك:

  1. اضبط متغيّر بيئة JAVA_home على مسار تثبيت حزمة Java SDK (على سبيل المثال، C:\Program Files\Java\jdk1.7.0_45).
  2. أضِف مجلد bin الخاص بـ Java SDK إلى متغيّر بيئة PATH (على سبيل المثال، C:\Program Files\Java\jdk1.7.0_45\bin).
  3. إعادة التشغيل.

كيفية تعديل متغيرات البيئة: في Windows 2000/XP/Vista/7، انقر بزر الماوس الأيمن على My Computer، ثم Properties (الخصائص)، ثم انتقِل إلى Advanced System Properties (خصائص النظام) (أو System Properties (خصائص النظام) ثم انقر على System Properties (خصائص النظام) ثم انقر على Advanced (Advanced (إعدادات النظام)))، ثم انقر على Environment Variables (متغيرات البيئة). في نظام التشغيل Windows 8، اضغط على مفتاح Windows + W وابحث عن متغيرات البيئة لمزيد من المعلومات، راجِع الوثائق الخاصة بإصدار نظام التشغيل Windows.

تشغيل المشروع

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

لإنشاء التطبيقات وتشغيلها على Android، انقر على ملف > إعدادات الإصدار، واختر نظام Android الأساسي، ثم التبديل إلى النظام الأساسي، ثم إنشاء وتشغيل.

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

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

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

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

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

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

    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. ونتيجةً لذلك، ننصح بأن تعرض الألعاب شاشة في وضع الاستعداد إلى أن يتم طلب معاودة الاتصال لضمان عدم تمكُّن المستخدمين من بدء تشغيل اللعبة حتى اكتمال المصادقة.

.

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

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

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

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

  2. يمكنك الاتصال بـ PlayGamesPlatform.Instance.RequestServerSideAccess بعد مصادقة المشغّل للحصول على رمز الدخول من جهة الخادم.

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

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

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