يوضّح هذا المستند كيفية نقل الألعاب الحالية من حزمة SDK لألعاب الإصدار 1 إلى حزمة SDK لألعاب الإصدار 2. يستخدم المكوّن الإضافي لـ "ألعاب Play" في Unity، الإصدار 10 والإصدارات الأقدم، الإصدار 1 من حزمة تطوير البرامج (SDK) للألعاب.
قبل البدء
- تأكَّد من أنّك سبق أن أعددت Play Console و ثبّت Unity Hub.
تنزيل المكوّن الإضافي لتطبيق "ألعاب Google Play" في Unity
للاستفادة من أحدث الميزات في "خدمات ألعاب Play"، نزِّل أحدث إصدار من المكوّن الإضافي وثبِّته. نزِّل الإصدار من مستودع GitHub.
إزالة المكوّن الإضافي القديم
في Unity Hub، أزِل المجلدات أو الملفات التالية.
Assets/GooglePlayGames Assets/GeneratedLocalRepo/GooglePlayGames Assets/Plugins/Android/GooglePlayGamesManifest.androidlib Assets/Plugins/Android
![أزِل المجلدات المميّزة في مشروع Unity.](https://developer.android.com/static/images/games/pgs/unityfolders.png?hl=ar)
استيراد المكوّن الإضافي الجديد إلى مشروع Unity
لاستيراد المكوّن الإضافي إلى مشروع Unity، اتّبِع الخطوات التالية:
- افتح مشروع لعبتك.
- في Unity Hub، انقر على مواد العرض > استيراد حزمة > حزمة مخصّصة
لاستيراد ملف
unitypackage
الذي تم تنزيله إلى مواد عرض مشروعك. تأكَّد من ضبط نظام التشغيل الحالي على Android.
في القائمة الرئيسية، انقر على ملف (File) > إعدادات الإنشاء (Build Settings).
اختَر Android وانقر على تبديل النظام الأساسي.
من المفترض أن يظهر عنصر قائمة جديد ضمن النافذة > ألعاب Google Play. إذا لم يكن هناك أيّ ملف، يمكنك إعادة تحميل مواد العرض بالنقر على مواد العرض > إعادة تحميل ثممحاولة ضبط منصة الإنشاء مرة أخرى.
في Unity Hub، انقر على ملف > إعدادات الإصدار > إعدادات المشغّل > الإعدادات الأخرى.
في المربّع مستوى واجهة برمجة التطبيقات المستهدَف، اختَر إصدارًا.
في المربّع Scripting backend (الخلفية لكتابة النصوص البرمجية)، أدخِل
IL2CPP
.في مربّع البنى الأساسية المستهدَفة، اختَر قيمة.
دوِّن اسم الحزمة package_name.يمكنك استخدام هذه المعلومات لاحقًا.
إعدادات المشغّل في مشروعك على Unity
تعديل رمز تسجيل الدخول التلقائي
استبدِل فئة بدء PlayGamesClientConfiguration
بفئة
PlayGamesPlatform.Instance.Authenticate()
.
ليس من الضروري إعداد PlayGamesPlatform
وتفعيله.
يؤدي الاتصال برقم PlayGamesPlatform.Instance.Authenticate()
إلى جلب نتيجة تسجيل الدخول التلقائي.
#C
في Unity Hub، ابحث عن الملفات التي تحتوي على فئة
PlayGamesClientConfiguration
.
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;
public void Start() {
PlayGamesClientConfiguration config =
new PlayGamesClientConfiguration.Builder()
// Enables saving game progress
.EnableSavedGames()
// Requests the email address of the player be available
// will bring up a prompt for consent
.RequestEmail()
// Requests a server auth code be generated so it can be passed to an
// associated backend server application and exchanged for an OAuth token
.RequestServerAuthCode(false)
// Requests an ID token be generated. This OAuth token can be used to
// identify the player to other services such as Firebase.
.RequestIdToken()
.Build();
PlayGamesPlatform.InitializeInstance(config);
// recommended for debugging:
PlayGamesPlatform.DebugLogEnabled = true;
// Activate the Google Play Games platform
PlayGamesPlatform.Activate();
}
وغيِّره إلى ما يلي:
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).
}
}
اختيار منصّة تواصل اجتماعي
لاختيار منصة تواصل اجتماعي، راجِع مقالة اختيار منصة تواصل اجتماعي.
استرداد رموز مصادقة الخادم
للحصول على رموز الوصول من جهة الخادم، راجِع مقالة استرداد رموز مصادقة الخادم.
إزالة رمز تسجيل الخروج
أزِل الرمز المخصّص لتسجيل الخروج. لم تعُد "خدمات ألعاب Play" تتطلّب زرًا للخروج من اللعبة.
أزِل الرمز المعروض في المثال التالي:
#C
// sign out
PlayGamesPlatform.Instance.SignOut();
اختبار لعبتك
تأكَّد من أنّ لعبتك تعمل على النحو المطلوب من خلال اختبارها. تعتمد الاختبارات التي تجريها على ميزات لعبتك.
في ما يلي قائمة بالاختبارات الشائعة التي يجب إجراؤها.
تسجيل الدخول بنجاح
تعمل ميزة "تسجيل الدخول تلقائيًا". يجب أن يكون المستخدم مسجِّلاً الدخول إلى "خدمات ألعاب Play" عند تشغيل اللعبة.
يتم عرض النافذة المنبثقة للترحيب.
نموذج نافذة منبثقة ترحيبية (انقر للتكبير). يتم عرض رسائل السجلّ الناجحة. نفِّذ الأمر التالي في الوحدة الطرفية:
adb logcat | grep com.google.android.
تظهر رسالة سجلّ ناجحة في المثال التالي:
[
$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup. [CONTEXT service_id=1 ]
ضمان اتساق مكونات واجهة المستخدم
يتم عرض النوافذ المنبثقة ولوحات الصدارة والإنجازات بشكل صحيح وبثبات على أحجام شاشات واتجاهات مختلفة في واجهة مستخدم "خدمات ألعاب Play".
لا يظهر خيار تسجيل الخروج في واجهة مستخدم "خدمات ألعاب Play".
تأكَّد من أنّه يمكنك استرداد معرّف اللاعب بنجاح، ومن أنّ ميزات جهة الخادم تعمل على النحو المتوقّع، إن أمكن.
إذا كانت اللعبة تستخدم مصادقة من جهة الخادم، اختبِر بدقة خطوات
requestServerSideAccess
. تأكَّد من أنّ الخادم يتلقّى رمز التفويض ويمكنه استبداله برمز مميّز للوصول. اختبِر سيناريوهات النجاح والفشل لأخطاء الشبكة وسيناريوهاتclient ID
غير الصالحة.
إذا كانت لعبتك تستخدم أيًا من الميزات التالية، اختبِرها للتأكّد من أنّها تعمل بالطريقة نفسها التي كانت تعمل بها قبل نقل البيانات:
- قوائم الصدارة: يمكنك إرسال النتائج والاطّلاع على قوائم الصدارة. تأكَّد من صحة ترتيب اللاعبين وأسماءهم ونتائجهم المعروضة.
- الإنجازات: يمكنك فتح قفل الإنجازات والتأكّد من تسجيلها وعرضها بشكل صحيح في واجهة مستخدم تطبيق "ألعاب Play".
- الألعاب المحفوظة: إذا كانت اللعبة تستخدم ميزة "حفظ الألعاب"، تأكَّد من أنّ ميزة حفظ مستوى التقدّم في اللعبة وتحميله تعمل بسلاسة. وهذا أمر مهم بشكل خاص لاختبار التطبيقات على عدة أجهزة وبعد تحديثها.
مهام ما بعد نقل البيانات
أكمِل الخطوات التالية بعد نقل البيانات إلى الإصدار 2 من حزمة تطوير البرامج (SDK) للألعاب.