استخدام "تطبيقات Google Play الفورية" مع Unity

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

تنزيل المكوّن الإضافي واستيراده

يمثّل المكوّن الإضافي جزءًا من مكوّنات Google Play الإضافية لـ Unity. للاستيراد المكون الإضافي، اتبع الخطوات التالية:

  1. نزِّل أحدث إصدار من إصدارات Google Play Plugins for Unity.
  2. يجب استيراد ملف .unitypackage من خلال تحديد خيار قائمة Unity IDE. مواد العرض > استيراد الحزمة > حزمة مخصصة واستيراد جميع العناصر.

ميزات Unity Editor

قم باستيراد المكون الإضافي لإضافة Google > القائمة الفرعية "تشغيل فوري" في Unity. هذا النمط القائمة الفرعية الخيارات التالية.

إنشاء الإعدادات

يتم فتح نافذة تتيح التبديل بين مثبَّت وفوري. وأوضاع التطوير. يؤدي التبديل إلى البحث الفوري إلى تنفيذ التغييرات التالية:

  • ينشئ رمز تعريف برمجة يسمى PLAY_INSTANT ويمكن استخدامه في البرمجة النصية مع #if PLAY_INSTANT و#endif.
  • إدارة التحديثات التي يتم إجراؤها على AndroidManifest.xml بشأن بعض التغييرات المطلوبة، مثل كـ android:targetSandboxVersion.

إعدادات المشغّل

يعرض مربع حوار إعدادات المشغّل، الذي يظهر في الشكل 1، اقتراحات للمساعدة تحسين التوافق مع تطبيقات Google Play الفورية، وتطوير التطبيقات مقارنةً بالمزيد من واجهات برمجة التطبيقات للرسومات، فضلاً عن تقليل حجم حزمة APK.

تتضمن الاقتراحات المحددة استخدام OpenGL ES 2.0 فقط
  إيقاف العرض متعدد السلاسل.
الشكل 1. مربّع الحوار إعدادات المشغّل

تنقسم إعدادات المشغّل هذه إلى مطلوبة ومقترَحة. الإعدادات. إذا كان الإعداد يحتوي على زر تحديث مقابل، انقر عليه تغيير الإعداد إلى القيمة المفضلة.

لتقليل حجم حزمة APK بشكل أكبر، افتح أداة Unity Package Manager وأزِل أي والحزم غير المستخدمة.

النشر السريع

يمكن لميزة "النشر السريع" تقليل حجم تطبيق فوري يستند إلى Unity من خلال تجميع بعض الأصول في AssetBundle عند استخدام ميزة "النشر السريع"، يتم تجميع محرك لعبة Unity وشاشة التحميل في ملف APK لتطبيق فوري، وبعد بدء تشغيل التطبيق الفوري، يسترد AssetBundle من خادم

دعم مهام سير عمل التثبيت

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

إظهار طلب تثبيت

يمكن لتطبيق فوري يحتوي على الزر تثبيت أن يعرض عملية تثبيت من متجر Play من خلال استدعاء ما يلي من معالِج نقر زر التثبيت:

Google.Play.Instant.InstallLauncher.ShowInstallPrompt();

تتضمن الطريقة ShowInstallPrompt() حمل زائد مما يسمح بواحد أو أكثر من ما يلي:

  • تحديد ما إذا كان المستخدم ألغى عملية التثبيت أم لا. تجاهُل onActivityResult() في النشاط الرئيسي للتطبيق الفوري ثم الاطّلاع على RESULT_CANCELED في requestCode المحدّد.
  • تمرير سلسلة مُحيل التثبيت من خلال مَعلمة referrer
  • حالة تمرير اللعبة الحالية عبر PutPostInstallIntentStringExtra()

يتم توضيح ذلك في المثال التالي:

using Google.Play.Instant;
...
const int requestCode = 123;
var sessionInfo = /* Object serialized as a string representing player's current location, etc. */;
using (var activity = UnityPlayerHelper.GetCurrentActivity())
using (var postInstallIntent = InstallLauncher.CreatePostInstallIntent(activity))
{
    InstallLauncher.PutPostInstallIntentStringExtra(postInstallIntent, "sessionInfo", sessionInfo);
    InstallLauncher.ShowInstallPrompt(activity, requestCode, postInstallIntent, "test-referrer");
}

إذا أكمل المستخدم تثبيت التطبيق، سيعيد "متجر Play" تشغيل التطبيق باستخدام postInstallIntent المُقدّمة. يمكن للتطبيق المثبّت استرداد قيمة التي تم ضبطها في postInstallIntent باستخدام ما يلي:

var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");

ملاحظات:

  • قد لا تصل الميزات الإضافية المضمَّنة في postInstallIntent إلى الأجهزة المثبَّتة. التطبيق إذا ثبّت المستخدم التطبيق ولكنه ألغى الإطلاق بعد التثبيت. إنّ العناصر الإضافية لهدف التمرير هي الأكثر ملاءمةً للاحتفاظ بحالة الجلسة النشطة. مقارنةً بالحفاظ على الحالة المستمرة؛ بالنسبة إلى الخيار الأخير، يُرجى الرجوع إلى واجهة برمجة تطبيقات Cookie.
  • ويمكن لأي شخص إنشاء هدف بحقول إضافية لبدء تشغيل التطبيقات التطبيق، لذلك إذا كانت الحمولة تمنح شيئًا ذا قيمة، فقم بتصميم الحمولة بحيث يمكن استخدامه مرة واحدة فقط، والتوقيع عليه بطريقة مشفّرة، والتحقق من التوقيع على الخادم.

توفّر واجهة برمجة تطبيقات Cookie API طرقًا لتمرير ملف تعريف ارتباط (مثل رقم تعريف اللاعب أو المستوى). بيانات اكتمال العملية) من تطبيق فوري إلى التطبيق المقابل له المثبّت. إلغاء الإعجاب postInstallIntent عنصر إضافي، تظل حالة ملف تعريف الارتباط متاحة حتى إذا كان المستخدم لا يؤدي إلى تشغيل التطبيق المثبّت على الفور. على سبيل المثال، يمكن لتطبيق فوري استدعِ الرمز التالي من معالِج نقر زر التثبيت:

using Google.Play.Instant;
...
var playerInfo = /* Object serialized as a string representing game levels completed, etc. */;
var cookieBytes = System.Text.Encoding.UTF8.GetBytes(playerInfo);
try
{
    var maxCookieSize = CookieApi.GetInstantAppCookieMaxSize();
    if (cookieBytes.Length > maxCookieSize)
    {
        UnityEngine.Debug.LogErrorFormat("Cookie length {0} exceeds limit {1}.", cookieBytes.Length, maxCookieSize);
    }
    else if (CookieApi.SetInstantAppCookie(cookieBytes))
    {
        UnityEngine.Debug.Log("Successfully set cookie. Now display the app install dialog...");
        InstallLauncher.ShowInstallPrompt();
    }
    else
    {
        UnityEngine.Debug.LogError("Failed to set cookie.");
    }
}
catch (CookieApi.InstantAppCookieException ex)
{
    UnityEngine.Debug.LogErrorFormat("Failed to set cookie: {0}", ex);
}

إذا أكمل المستخدم تثبيت التطبيق، يمكن للتطبيق المثبّت استرداد بيانات ملف تعريف الارتباط باستخدام التعليمة البرمجية التالية:

var cookieBytes = CookieApi.GetInstantAppCookie();
var playerInfoString = System.Text.Encoding.UTF8.GetString(cookieBytes);
if (!string.IsNullOrEmpty(playerInfoString))
{
    // Initialize game state based on the cookie, e.g. skip tutorial level completed in instant app.
}