يرشدك هذا المستند إلى كيفية إعداد مشروع Unity لاستخدام مكوّن ألعاب Google Play الإضافي لـ Unity. ستتعرّف على كيفية تثبيت المكوّن الإضافي وضبط مشروع Unity. يتناول المستند أيضًا كيفية التحقّق من خدمة المصادقة.
قبل البدء
راجِع متطلبات البرنامج. أعِدّ Play Console وثبِّت Unity Editor.
أعِدّ Play Console للعبتك.
ثبِّت Unity Editor و أنشئ لعبتك في Unity.
تثبيت المكوّن الإضافي
لتنزيل وتثبيت مكوّن ألعاب Google Play الإضافي لـ Unity، اتّبِع الخطوات التالية في Unity Editor:
نزِّل مستودع GitHub.
في دليل
current-build، ابحث عن ملفunitypackage. يمثّل هذا الملف المكوّن الإضافي. على سبيل المثال، يجب أن يكون على النحو التالي:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
إعداد مشروع Unity
لإعداد مشروع Unity في إعدادات اللاعب، اتّبِع الخطوات التالية:
افتح مشروع لعبتك.
في Unity Editor، انقر على مواد العرض (Assets) > استيراد حزمة (Import Package) > حزمة مخصّصة (Custom Package) لاستيراد ملف
unitypackageإلى مواد عرض مشروعك.تأكَّد من ضبط منصة الإصدار الحالية على Android.
في القائمة الرئيسية، انقر على ملف (File) > إعدادات الإصدار (Build Settings).
اختَر Android وانقر على تبديل المنصة (Switch Platform).
يجب أن يظهر عنصر قائمة جديد ضِمن نافذة (Window) > ألعاب Google Play (Google Play Games). إذا لم يظهر، أعِد تحميل مواد العرض بالنقر على مواد العرض (Assets) > إعادة تحميل (Refresh)، ثم حاوِل ضبط منصة الإصدار مرة أخرى.
في Unity Editor، انقر على ملف (File) > إعدادات الإصدار (Build Settings) > إعدادات اللاعب (Player Settings) > إعدادات أخرى (Other Settings).
في مربّع مستوى واجهة برمجة التطبيقات المستهدَف ، اختَر إصدارًا.
في مربّع الخادم الخلفي للبرمجة النصية ، أدخِل
IL2CPP.في مربّع البنيات المستهدَفة ، اختَر قيمة.
دوِّن اسم الحزمة package_name.يمكنك استخدام هذه المعلومات لاحقًا.
إنشاء ملف تخزين مفاتيح جديد
للتحقّق من بيانات الاعتماد، تحتاج إلى مفتاح. اتّبِع الخطوات التالية:
- في Unity Editor، انقر على ملف (File) > إعدادات الإصدار (Build settings) > إعدادات اللاعب (Player settings).
- في قسم إعدادات النشر (Publishing settings) ، انقر على إدارة مخزن المفاتيح (Keystore manager).
- في نافذة إدارة مخزن المفاتيح (Keystore manager) ، انقر على مخزن المفاتيح (Keystore) > إنشاء جديد (Create new) > في أي مكان (Anywhere).
- اختَر مجلدًا وأدخِل اسمًا لمخزن المفاتيح.
- في مربّع كلمة المرور (Password) ، أدخِل كلمة مرور وأكِّدها.
- انقر على إضافة مفتاح (Add key).
دوِّن اسم المجلد. يمكنك استخدام هذا الاسم لـ إنشاء بيانات اعتماد في Google Cloud.
نسخ موارد Android من Play Console
يتضمّن كل إنجاز ولوحة صدارة وحدث تنشئها في Play Console مورد Android تستخدمه عند إعداد مشروع Unity.
للحصول على موارد Android للعبتك، اتّبِع الخطوات التالية:
في Google Play Console، افتح اللعبة.
في صفحة الإعدادات ضمن "خدمات ألعاب Play" (Play Games Services - Configuration) (النمو > خدمات ألعاب Play > الإعداد والإدارة > الإعدادات)، انقر على الحصول على الموارد (Get resources).
في نافذة الموارد (Resources) ، انقر على علامة التبويب Android(XML).
اختَر محتوى موارد Android (
AndroidManifest.xml) وانسخه.
إضافة موارد Android إلى مشروع Unity
أضِف موارد Android التالية إلى مشروع Unity:
في Unity Editor، انقر على نافذة (Window) > ألعاب Google Play (Google Play Games) > الإعداد (Setup) > إعداد Android (Android Setup).
- في حقل الدليل لحفظ الثوابت ، أدخِل اسم مجلد ملف الثوابت.
في حقل اسم فئة الثوابت ، أدخِل اسم فئة C# التي تريد إنشاءها، بما في ذلك مساحة الاسم.
على سبيل المثال، إذا كانت فئة C# هي
id.csوموجودة ضِمن مواد العرض (Assets) > myproject > النصوص البرمجية (scripts) > id.cs. يمكن أن يكون اسم فئة الثوابتmyproject.scripts.id.في حقل تعريف الموارد ، ألصِق بيانات موارد Android (ملف
AndroidManifest.xml) التي نسختها من Google Play Console.اختياري: في حقل معرّف العميل ، أدخِل معرّف عميل تطبيق الويب المرتبط.
للحصول على معرّف العميل للعبتك من Google Cloud، اطّلِع على مقالة إنشاء معرّفات العملاء.
لا تحتاج إلى ذلك إلا إذا كان لديك خادم خلفي مستند إلى الويب للعبتك وتحتاج إلى رمز تفويض الخادم لاستبداله برمز الدخول من خلال خادم الخلفية، أو إذا كنت بحاجة إلى رمز تعريف للاعب لإجراء طلبات أخرى من واجهة برمجة التطبيقات غير المتعلّقة باللعبة.
انقر على إعداد (Setup). يؤدي ذلك إلى إعداد لعبتك باستخدام معرّف العميل وإنشاء فئة C# تحتوي على ثوابت لكل من موارد Android.
في Unity Editor، انقر على نافذة (Window) > ألعاب Google Play (Google Play Games) > الإعداد (Setup) > إعداد اتصالات قريبة (Nearby Connections Setup).
في حقل معرّف خدمة الاتصال القريب، أدخِل package_name.
استخدِم package_name نفسه الذي استخدمته في إعداد مشروع Unity.
انقر على إعداد (Setup).
اختيار منصة تواصل اجتماعي
يُنفّذ مكوّن "خدمات ألعاب Google Play" الإضافي واجهة Unity الاجتماعية، وذلك لضمان التوافق مع الألعاب التي تستخدم هذه الواجهة حاليًا عند التكامل مع منصات أخرى. ومع ذلك، تتفرّد "ألعاب Play" ببعض الميزات التي يتم تقديمها كإضافات إلى الواجهة الاجتماعية العادية التي توفّرها Unity.
يمكن الوصول إلى طلبات واجهة برمجة التطبيقات العادية من خلال العنصر Social.Active ، وهو مرجع إلى واجهة ISocialPlatform. يمكن الوصول إلى إضافات "خدمات ألعاب Google Play" غير العادية من خلال تحويل العنصر Social.Active إلى فئة PlayGamesPlatform ، حيث تتوفّر الطرق الإضافية.
استخدام المكوّن الإضافي بدون إلغاء المنصة الاجتماعية التلقائية
عند استدعاء
PlayGamesPlatform.Activate،
تصبح "خدمات ألعاب Google Play" هي المنصة الاجتماعية التلقائية. يعني ذلك أنّ مكوّن "خدمات ألعاب Google Play" الإضافي يُجري طلبات ثابتة للطرق في Social وSocial.Active، وهو السلوك المتوقّع لمعظم الألعاب التي تستخدم المكوّن الإضافي.
ومع ذلك، إذا أردت لأي سبب من الأسباب إبقاء التنفيذ التلقائي متاحًا (على سبيل المثال، لاستخدامه في إرسال الإنجازات ولوحات الصدارة إلى منصة اجتماعية مختلفة)، يمكنك استخدام مكوّن "خدمات ألعاب Google Play" الإضافي بدون إلغاء المكوّن التلقائي. لإجراء ذلك:
- استدعِ الطريقة
PlayGamesPlatform.Activate. - إذا كان
Xyzهو اسم طريقة تستدعيها في فئةSocial، لا تستدعِSocial.Xyz. بدلاً من ذلك، استدعِPlayGamesPlatform.Instance.Xyz. - استخدِم السمة
PlayGamesPlatform.Instanceبدلاً منSocial.Activeعند التفاعل مع "خدمات ألعاب Google Play".
بهذه الطريقة، يمكنك حتى إرسال النتائج والإنجازات في الوقت نفسه إلى منصتَين اجتماعيتَين أو أكثر:
// 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 authenticate. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
رمز النتيجة هو تعداد يمكنك استخدامه لتحديد سبب المصادقة وفشلها.
إذا كنت تفضّل استخدام المنصة الاجتماعية في Unity، يمكنك بدلاً من ذلك استخدام الرمز التالي:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
لا يمكنك إجراء أي طلبات من واجهة برمجة التطبيقات "خدمات ألعاب Google Play" إلى أن تحصل على قيمة إرجاع ناجحة من Authenticate. نتيجةً لذلك، ننصح الألعاب بعرض شاشة وضع الاستعداد إلى أن يتم استدعاء دالة ردّ الاتصال لضمان عدم تمكّن المستخدمين من بدء اللعب إلى أن تكتمل المصادقة.
منع إنشاء الملف الشخصي تلقائيًا
يمكنك إيقاف رسائل المطالبة بإنشاء الملف الشخصي تلقائيًا من خلال ملف البيان. يسمح ذلك للمستخدمين الذين ليس لديهم ملف شخصي في "خدمات ألعاب Play" بمتابعة تحميل اللعبة بدون أن يُطلب منهم إنشاء ملف شخصي في "خدمات ألعاب Play". لمزيد من المعلومات، اطّلِع على خيارات إنشاء الملف الشخصي.
لاستخدام هذه الميزة، تأكَّد من استيفاء الشروط التالية:
- لا يتضمّن الجهاز أي ملف شخصي في "خدمات ألعاب Play" على أي من حسابات Google التي تم تسجيل الدخول إليها.
- تم دمج لعبتك مع خدمات ألعاب Play
مكوّن Unity الإضافي
2.1.0أو الإصدارات الأحدث.
في ملف
AndroidManifest.xml، أضِف العلامةcom.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONفي العنصر<meta-data>والسمات إلى العنصر<application>:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>
يؤدي ضبط هذه العلامة على "صحيح" إلى إعلام "خدمات ألعاب Play" بأنّ لعبتك ستتولى عملية إنشاء الملف الشخصي. وبالتالي، لن تعرض "خدمات ألعاب Play" تلقائيًا واجهة مستخدم إنشاء الملف الشخصي للمستخدمين على الجهاز الذين ليس لديهم ملف شخصي حالي في "خدمات ألعاب Play".
للتعامل مع الحالات التي لا تتم فيها مصادقة هوية المستخدم بسبب عدم توفّر ملف شخصي في "خدمات ألعاب Play"، يمكنك استخدام PlayGamesPlatform.Instance.IsAuthenticated(). تعرض هذه الطريقة
falseلأنّ إنشاء الملف الشخصي يفشل. لحلّ هذه المشكلة، ابدأ عملية إنشاء الملف الشخصي من خلال استدعاء `PlayGamesPlatform.Instance.ManuallyAuthenticate()`.if (!PlayGamesPlatform.Instance.IsAuthenticated()) { // The user is unauthenticated, likely due to a missing Play Games profile. // Calling PlayGamesPlatform.Instance.ManuallyAuthenticate() will trigger // the profile creation UI. PlayGamesPlatform.Instance.ManuallyAuthenticate((SignInStatus status) => { // ... }); }بعد إضافة علامة الإيقاف، استخدِم نافذة
logcatللتحقّق من الإضافة. يحتوي الناتجlogcatعلى رسالة مشابهة لما يلي: "Game opted out of automatic profile creation prompt (using manifest)".
استخدام ميزة "توقيع التطبيق" من Play
تُدير Google مفتاح توقيع تطبيقك وتحميه باستخدام ميزة "توقيع التطبيق" من Play. يمكنك استخدام ميزة "توقيع التطبيق" من Play لتوقيع ملفات "مجموعات حزمات تطبيق Android" المحسَّنة للتوزيع. تخزّن ميزة "توقيع التطبيق" من Play مفتاح توقيع تطبيقك على بنية Google الأساسية الآمنة. لاستخدام ميزة "توقيع التطبيق" من Play، عليك أولاً إنشاء ملف بتنسيق AAB وتنزيله من Unity Editor. يمكنك بعد ذلك تحميل ملف AAB إلى Play Console وإنشاء إصدار للاختبار الداخلي.
إنشاء ملف بتنسيق AAB
لإنشاء ملف بتنسيق AAB في Unity Editor، اتّبِع الخطوات التالية:
- في Unity Editor، انقر على ملف (File) > إعدادات الإصدار (Build settings).
انقر على إنشاء حزمة التطبيق (Build App Bundle) (Google Play).
لمزيد من المعلومات، اطّلِع على مرجع إعدادات إصدار Android.
انقر على إنشاء (Build).
نزِّل ملف AAB من Unity Editor.
إنشاء إصدار للاختبار الداخلي
لإنشاء إصدار للاختبار الداخلي وإضافة مختبِرين في Play Console، اتّبِع الخطوات التالية:
- في Google Play Console، اختَر لعبة.
- انتقِل إلى صفحة الاختبار والإصدار (الاختبار > الاختبار الداخلي).
- انقر على تحميل (Upload) واختَر ملف AAB.
- في حقل تفاصيل الإصدار ، أدخِل اسمًا.
- انقر على التالي (Next) وراجِع تفاصيل الإصدار.
- انقر على حفظ ونشر (Save and publish).
في علامة التبويب المختبِرون (Testers) ، انقر على إنشاء قائمة عناوين بريد إلكتروني (Create email list) لإضافة ما يصل إلى 100 مختبِر.
لمزيد من المعلومات، اطّلِع على مقالة الاختبار الداخلي: إدارة ما يصل إلى 100 مختبِر.
في عنوان URL للملاحظات أو عنوان البريد الإلكتروني (Feedback URL or email address)، أدخِل عنوان URL للملاحظات أو عنوان بريد إلكتروني لتقديم الملاحظات.
انقر على حفظ (Save).
التحقّق من بيانات اعتماد ميزة "توقيع التطبيق"
- في Google Play Console، اختَر لعبة.
- انتقِل إلى صفحة الاختبار والإصدار (الإعداد > توقيع التطبيق).
- تحقَّق من بيانات اعتماد ميزة "توقيع التطبيق".
إنشاء المشروع وتشغيله
يمكنك إنشاء مشروع اللعبة وتشغيله في هذه المرحلة. عند بدء اللعبة، ستظهر محاولة المصادقة التلقائية.
تحتاج إلى جهاز فعلي يعمل بنظام التشغيل Android ومفعَّلة عليه ميزة تصحيح أخطاء الجهاز عبر USB أو محاكي يمكنه تشغيل المشروع الذي تم تطويره.
استرداد رموز مصادقة الخادم
للوصول إلى Google APIs على خادم ويب خلفي نيابةً عن اللاعب الحالي، عليك الحصول على رمز مصادقة من تطبيق العميل وتمريره إلى تطبيق خادم الويب. يمكن بعد ذلك استبدال الرمز برمز الدخول لإجراء طلبات إلى واجهات برمجة التطبيقات المختلفة. للحصول على معلومات عن سير العمل، اطّلِع على مقالة تسجيل الدخول باستخدام Google للويب.
للحصول على رمز الوصول من جهة الخادم:
- أضِف معرّف عميل الويب للعبتك في Play Console.
- في Google Play Console، اختَر لعبتك.
- في صفحة الإعدادات (النمو > خدمات ألعاب Play > الإعداد والإدارة > الإعدادات)، انقر على إضافة بيانات اعتماد.
- في صفحة إضافة بيانات اعتماد ، انقر على خادم الألعاب.
- أنشئ معرّف عميل OAuth 2.0.
- دوِّن قيمة معرّف العميل. ستحتاج إلى تقديم هذه القيمة لاحقًا.
أضِف معرّف عميل الويب إلى Unity Hub.
- في Unity Hub، أعِدّ "ألعاب Google Play" لـ Unity وأثبِت هويتك.
- في Unity Hub، انتقِل إلى نافذة (Window) > ألعاب Google Play (Google Play Games) > الإعداد (Setup) > إعداد Android (Android Setup).
- أدخِل قيمة معرّف العميل.
استرداد رمز التفويض الخاص بالخادم للنطاقات الإضافية
#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... });
إعداد الميزات وإضافتها
تفعيل ميزات "خدمات ألعاب Play".
أضِف ميزات إلى لعبتك باستخدام واجهات برمجة التطبيقات "خدمات ألعاب Play":
واجهة برمجة التطبيقات Recall لـ Unity (لا تتوافق إلا مع الإصدار 11 من مكوّن Unity الإضافي والإصدارات الأحدث)