ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

أضف Firebase إلى مشروع Unity الخاص بك ،

عزز ألعاب Unity الخاصة بك باستخدام مجموعات Firebase Unity SDK.

لإظهار مدى سهولة توصيل Firebase بمشروع Unity الخاص بك ، صممنا لعبة نموذجية ، MechaHamster ، يمكنك تنزيلها من GitHub ومتجر التطبيقات ومتجر Google Play .

MechaHamster (جيثب)

MechaHamster (متجر التطبيقات)

MechaHamster (متجر Play)


اكتشف المزيد من المعلومات حول تشغيل ألعابك باستخدام Firebase على صفحة ألعاب Firebase .

هل سبق لك إضافة Firebase إلى مشروع الوحدة الخاص بك؟ تأكد من أنك تستخدم أحدث إصدار من Firebase Unity SDK .

المتطلبات الأساسية

  • قم بتثبيت Unity 5.3 أو أحدث.

  • (iOS فقط) قم بتثبيت ما يلي:

    • Xcode 9.4.1 أو أحدث
    • CocoaPods 1.4.0 أو أحدث
  • تأكد من أن مشروع الوحدة الخاص بك يلبي هذه المتطلبات:

    • لنظام iOS - يستهدف iOS 8 أو أحدث
    • لأجهزة Android - تستهدف مستوى API 16 (Jelly Bean) أو أحدث
  • قم بإعداد جهاز مادي أو استخدام محاكي لتشغيل تطبيقك.

    • لنظام iOS - قم بإعداد جهاز iOS فعلي أو استخدم محاكي iOS.

    • لالروبوت - المحاكيات يجب استخدام صورة المحاكي مع جوجل اللعب.

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

الخطوة 1 : أنشئ مشروع Firebase

قبل أن تتمكن من إضافة Firebase إلى مشروع Unity ، تحتاج إلى إنشاء مشروع Firebase للاتصال بمشروع Unity الخاص بك. تفضل بزيارة فهم مشاريع Firebase لمعرفة المزيد حول مشاريع Firebase.

الخطوة 2 : تسجيل تطبيقك في Firebase

يمكنك تسجيل تطبيق أو لعبة واحدة أو أكثر للتواصل مع مشروع Firebase.

  1. انتقل إلى وحدة تحكم Firebase .

  2. في وسط صفحة نظرة عامة على المشروع ، انقر فوق أيقونة الوحدة ( ) لبدء سير عمل الإعداد.

    إذا كنت قد أضفت بالفعل تطبيقًا إلى مشروع Firebase الخاص بك ، فانقر فوق إضافة تطبيق لعرض خيارات النظام الأساسي.

  3. حدد أي هدف بناء لمشروع الوحدة الذي ترغب في تسجيله ، أو يمكنك حتى تحديد تسجيل كلا الهدفين الآن في نفس الوقت.

  4. أدخل المعرف (المعرفات) الخاص بمنصة مشروع الوحدة الخاص بك.

    • لنظام iOS - أدخل معرف iOS الخاص بمشروع Unity في حقل معرف حزمة iOS .

    • لنظام Android - أدخل معرف Android الخاص بمشروع Unity في حقل اسم حزمة Android .
      غالبًا ما يتم استخدام المصطلحين اسم الحزمة ومعرف التطبيق بالتبادل.

  5. (اختياري) أدخل اللقب (الألقاب ) الخاصة بالنظام الأساسي لمشروع الوحدة الخاص بك.
    هذه الألقاب هي معرفات داخلية وملائمة ولا تظهر إلا لك في وحدة تحكم Firebase.

  6. انقر فوق تسجيل التطبيق .

الخطوة 3 : أضف ملفات تهيئة Firebase

  1. احصل على ملف (ملفات) تكوين Firebase الخاص بالنظام الأساسي في سير عمل إعداد وحدة تحكم Firebase.

    • لنظام iOS - انقر فوق تنزيل GoogleService-Info.plist .

    • لنظام Android - انقر فوق تنزيل google-services.json .

  2. افتح نافذة المشروع في مشروع الوحدة الخاص بك ، ثم انقل ملف (ملفات) التكوين إلى مجلد Assets .

  3. مرة أخرى في وحدة تحكم Firebase ، في سير عمل الإعداد ، انقر فوق التالي .

الخطوة 4 : أضف حزم Firebase Unity SDK

يمكنك إضافة منتجات Firebase المدعومة إلى مشروع Unity الخاص بك باستخدام Unity Package Manager ، أو يمكنك تثبيت حزم SDK يدويًا.

مدير حزمة الوحدة

إذا كنت تستخدم Unity 2018.4 أو أحدث ، و .NET 4.x أو .NET Standard 2.0 ، يمكنك تثبيت مكونات Firebase SDK باستخدام Unity Package Manager:

  1. أضف Game Package Registry من Google إلى مشروع Unity الخاص بك.

    • إذا لم تقم مطلقًا باستيراد Firebase SDK و EDM4U (المسمى رسميًا Play Services Resolver) من قبل ، فيمكنك إضافة الكتلة التالية يدويًا إلى Packages/manifest.json .

      "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
      

      لاحظ أن بعض حزم SDK الأخرى ، مثل Facebook SDK ، قد تحتوي على EDM4U في .unitypackage الخاصة بهم. تحقق من وجود مجلدات Assets/ExternalDependencyManager أو Assets/PlayServicesResolver . في حالة وجود هذه المجلدات ، قم بإزالتها قبل تثبيت أي Firebase SDK من خلال Unity Package Manager.

    • إذا كنت بحاجة إلى ترحيل SDK موجود أو تفضل طريقة أكثر تفاعلية ، فاستورد أحدث تبعية خارجية لـ Unity (EDM4U) .

      سيطالبك Unity Package Manager Resolver بإضافة Game Package Registry من Google إلى مشروعك. حدد السجل وانقر فوق الزر " إضافة السجلات المحددة" .

      • يضيف EDM4U السجل إلى Packages/manifest.json ضمن مجلد مشروع Unity الحالي.

      • يمكنك أيضًا إضافة هذا السجل يدويًا في وقت لاحق باستخدام الأصول > مدير التبعية الخارجية > محلل مدير حزمة الوحدة > إضافة سجلات أو نافذة > Google > سجل حزمة اللعبة > إضافة إلى خيارات قائمة المشروع .

  2. ترحيل حزم Firebase و EDM4U التي تم استيرادها من خلال .unitypackage إلى Unity Package Manager. يمكن القيام بذلك بإحدى الطرق التالية.

    • بعد إضافة السجل بواسطة EDM4U ، يجب أن يظهر مربع حوار بعنوان "ترحيل الحزم". يسرد مربع الحوار هذا كل حزمة متاحة للتثبيت من خلال Unity Package Manager. نوصي بتحديدها جميعًا والنقر فوق الزر " تطبيق" .

    • يمكنك أيضًا إظهار مربع الحوار هذا يدويًا لاحقًا باستخدام Assets > External Dependency Manager > Unity Package Manager Resolver > خيارات قائمة ترحيل الحزم .

    • يمكنك أيضًا ترحيل كل حزم تم استيرادها يدويًا من خلال .unitypackage خلال الخطوات التالية.

      1. قم بإزالة كل من Firebase Unity SDK و EDM4U من مجلد Assets . يوفر EDM4U أداة لإلغاء تثبيت الحزم المدارة والتي يمكن الوصول إليها باستخدام خيار قائمة الأصول > مدير التبعية الخارجية > معالج الإصدار > إلغاء تثبيت الحزم المُدارة . حدد جميع حزم Firebase SDK بالإضافة إلى External Dependency Manager وانقر فوق Uninstall Selected Packages .

        • بدلاً من ذلك ، يمكنك أيضًا إزالة SDK يدويًا من مجلد الأصول .
      2. قم بتثبيت مكونات Firebase Unity SDK باستخدام Unity Package Manager عن طريق تحديد Window > Package Manager والبحث عن Firebase . يمكن تثبيت مكونات Firebase Unity SDK وتحويلها وإزالتها من خلال هذه الواجهة.

  3. يمكنك الآن استكشاف وتثبيت أي مكونات Firebase Unity SDK أو حزم Google باستخدام Unity Package Manager عن طريق تحديد Window > Package Manager . يمكن تثبيت كل هذه المكونات وتعديلها وإزالتها من خلال هذه الواجهة.

التثبيت اليدوي

  1. في وحدة تحكم Firebase ، انقر على تنزيل Firebase Unity SDK ، ثم قم بفك ضغط SDK في مكان مناسب.

    • يمكنك تنزيل Firebase Unity SDK مرة أخرى في أي وقت.

    • إن حزمة Firebase Unity SDK ليست خاصة بالنظام الأساسي.

  2. في مشروع Unity المفتوح ، انتقل إلى Assets > Import Package > Custom Package .

  3. من SDK غير المضغوط ، حدد منتجات Firebase المدعومة التي تريد استخدامها في تطبيقك.

    تم تمكين التحليلات

    • أضف حزمة Firebase لبرنامج Google Analytics: FirebaseAnalytics.unitypackage
    • أضف الحزم لأي من منتجات Firebase الأخرى التي تريد استخدامها في تطبيقك. على سبيل المثال ، لاستخدام مصادقة Firebase وقاعدة بيانات Firebase Realtime:
      FirebaseAuth.unitypackage و FirebaseDatabase.unitypackage

    لم يتم تمكين التحليلات

    أضف حزم منتجات Firebase التي تريد استخدامها في تطبيقك. على سبيل المثال ، لاستخدام مصادقة Firebase وقاعدة بيانات Firebase Realtime:
    FirebaseAuth.unitypackage و FirebaseDatabase.unitypackage

  4. في نافذة استيراد حزمة الوحدة ، انقر فوق استيراد .

  5. مرة أخرى في وحدة تحكم Firebase ، في سير عمل الإعداد ، انقر فوق التالي .

الخطوة 5 : تأكيد متطلبات إصدار خدمات Google Play

تتطلب حزمة Firebase Unity SDK لنظام Android خدمات Google Play ، والتي يجب أن تكون محدثة قبل التمكن من استخدام SDK.

أضف الكود التالي في بداية التطبيق الخاص بك. يمكنك التحقق من خدمات Google Play وتحديثها اختياريًا إلى الإصدار المطلوب بواسطة Firebase Unity SDK قبل استدعاء أي طرق أخرى في SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

أنت جاهز تمامًا! تم تسجيل مشروع الوحدة الخاص بك وتهيئته لاستخدام Firebase.

مشاكل معروفة

توافق .NET عند استخدام Unity 2017.x والإصدارات الأحدث

يدعم Firebase .NET 4.x كخيار بناء تجريبي في Unity 2017 والإصدارات الأحدث. تستخدم مكونات Firebase الإضافية مكونات Parse SDK لتوفير بعض فئات .NET 4.x في الإصدارات السابقة من .NET.

لذلك ، يوفر الإصدار 5.4.0 Firebase Unity SDK والإصدارات الأحدث مكونات إضافية متوافقة مع .NET 3.x أو .NET 4.x في dotnet3 و dotnet4 من dotnet4 Unity SDK.

إذا قمت باستيراد مكون إضافي لـ Firebase غير متوافق مع إصدار .NET المُمكّن في مشروعك ، فسترى أخطاء تجميع من بعض الأنواع في .NET framework التي يتم تنفيذها بواسطة Parse SDK.

لحل خطأ الترجمة ، إذا كنت تستخدم .NET 3.x:

  1. قم بإزالة أو تعطيل ملفات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. قم بتمكين مكتبات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

لحل خطأ الترجمة ، إذا كنت تستخدم .NET 4.x:

  1. قم بإزالة أو تعطيل ملفات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. قم بتمكين مكتبات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

إذا قمت باستيراد مكون إضافي آخر من Firebase:

  • في مشروع Unity الخاص بك ، انتقل إلى Assets > Play Services Resolver > Version Handler > Update لتمكين مكتبات DLL الصحيحة لمشروعك.

Unity 2017.1 تجميع IL2CPP في مشاريع .NET 4.x.

يدعم Firebase .NET 4.x كخيار بناء تجريبي في Unity 2017 والإصدارات الأحدث. تستخدم مكونات Firebase الإضافية مكونات Parse SDK لتوفير بعض فئات .NET 4.x في الإصدارات السابقة من .NET.

لذلك ، يوفر الإصدار 5.4.0 من Firebase Unity SDK والإصدارات الأحدث إعادة توجيه نوع مكتبات DLL التي تعيد توجيه أنواع التحليل (على سبيل المثال ، تنفيذ تحليل System.Threading.Tasks.Task ) إلى إطار عمل .NET. لسوء الحظ ، لا يقوم IL2CPP (مترجم يقوم بتحويل C # إلى C ++) الذي يتم شحنه في Unity 2017.1.x بمعالجة إعادة توجيه نوع DLL بشكل صحيح مما ينتج عنه أخطاء إنشاء مشابهة لما يلي:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

لا يوجد حاليًا أي حل بديل متاح لأخطاء إنشاء .NET 4.x IL2CPP في Unity 2017.1 ، لذا يجب الترقية إلى Unity 2017.2 أو أحدث لاستخدام .NET 4.x في المشروعات المترجمة باستخدام IL2CPP.

Unity 2017.2 الشبكات

تنشئ قاعدة بيانات Firebase Realtime اتصالات شبكة TLS باستخدام مكدس الشبكات .NET. تتعطل وظيفة TLS في Unity 2017.2 عند استخدام .NET 4.6 مما يتسبب في فشل المكون الإضافي Realtime Database في المحررين وعلى سطح المكتب.

لا يوجد حل بديل لهذه المشكلة ، لذلك يجب عليك استخدام إصدار مختلف من Unity ، على سبيل المثال الإصدار 2017.1 أو 2017.3.

ملف تهيئة Firebase Android مفقود في Unity 2020.

من أجل دعم إصدارات Unity التي لا تملك القدرة على تخصيص بنية Gradle ، تقوم أداة محرر Firebase بإنشاء Assets/Plugins/Android/Firebase/res/values/google-services.xml كمورد Android ليتم تعبئتها في ملف إصدار Android ، بحيث يمكن لـ Firebase SDK استخدامه لتهيئة مثيل FirebaseApp الافتراضي.

وظيفة تضمين ملف الموارد المخصص معطلة أو متغيرة في Unity 2020. ونتيجة لذلك ، لن يتمكن التطبيق من إنشاء المثيل الافتراضي.

الحل البديل لذلك هو إضافة المورد يدويًا إلى mainTemplate.gradle .

  1. افتح إعدادات المشغل في Unity ، والتي يمكن العثور عليها عادةً في تحرير > إعدادات المشروع ... > خيار قائمة المشغل .
  2. ابحث عن خيار Custom Main Gradle Template ضمن إعدادات النشر وتأكد من تحديده.
  3. افتح Assets/Plugins/Android/mainTemplate.gradle باستخدام محرر نصوص.
  4. أضف الكتلة التالية إلى mainTemplate.gradle .

    android {
        sourceSets {
            main {
                def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
                res.srcDirs += (unityProjectPath +  '/Assets/Plugins/Android/Firebase/res/values/google-services.xml')
            }
        }
    }
    

تعارض التثبيت عند استخدام Unity Package Manager

يمكن تثبيت الحزمة من مصادر مختلفة. على سبيل المثال ، يمكن تثبيت External Dependency Manager for Unity (EDM4U باختصار ، والذي كان يُسمى سابقًا Play Services Resolver أو Unity Jar Resolver) بأي من الطرق التالية.

  • استيراد مدير التبعية الخارجية .unitypackage .
  • استيراد Firebase SDK أو SDK الأخرى التي تحتوي على EDM4U في .unitypackage الخاصة بهم.
  • تثبيت مدير التبعية الخارجية من خلال مدير حزمة الوحدة
  • تثبيت Firebase SDK أو SDK الأخرى التي تحدد EDM4U كتبعية لها من خلال Unity Package Manager .

عند تثبيت EDM4U (أو Firebase) من خلال .unitypackage ومن خلال Unity Package Manager في نفس الوقت ، يكون هناك تعارض في التثبيت ، وقد تظهر Unity خطأً حول تعارض GUID أو تعارض الرموز. لا يقدم EDM4U حاليًا حلًا لمثل هذه المواقف. عندما يحدث هذا ، إليك الحل:

  • إذا قمت بترحيل Firebase و EDM4U إلى Unity Package Manager من قبل وقمت باستيراد SDK آخر يحتوي على EDM4U في .unitypackage ، على سبيل المثال ، إعلانات Google أو Facebook SDK ، يمكنك ببساطة إزالة Assets/ExternalDependencyManager و / أو Assets/PlayServicesResolver مجلدات.
  • إذا قمت بتثبيت EDM4U عن طريق الخطأ من خلال Unity Package Manager قبل إزالته من مجلد Assets أولاً ، فاستخدم الخطوات التالية لحل التعارض:
    1. قم بإزالة مجلدات Assets/ExternalDependencyManager و / أو Assets/PlayServicesResolver .
    2. قم بإلغاء تثبيت جميع حزم Firebase و EDM4U من Unity Package Manager
    3. أعد تثبيت جميع حزم Firebase و EDM4U المطلوبة من UPM.

إعداد سير عمل سطح المكتب ( تجريبي )

عند إنشاء لعبة ، غالبًا ما يكون من الأسهل كثيرًا اختبار لعبتك في محرر Unity وعلى منصات سطح المكتب أولاً ، ثم نشرها واختبارها على الأجهزة المحمولة لاحقًا في مرحلة التطوير. لدعم سير العمل هذا ، نقدم مجموعة فرعية من Firebase Unity SDKs والتي يمكن تشغيلها على أنظمة تشغيل Windows و macOS و Linux ومن داخل محرر Unity.

  1. قم بإعداد مشروع Unity الخاص بالنظام الأساسي لسطح المكتب باتباع نفس التعليمات الخاصة بمنصة الأجهزة المحمولة (ابدأ بخطوة تسجيل تطبيقك باستخدام Firebase أعلاه.

  2. قم بتشغيل مشروع Unity الخاص بك في Unity IDE أو حدد إنشاء مشروع Unity الخاص بك لسطح المكتب .

  3. (اختياري) قم بتشغيل مشروع الوحدة في وضع التحرير.

    يمكن أيضًا تشغيل Firebase Unity SDK في وضع تحرير Unity ، مما يسمح باستخدامه في مكونات المحرر الإضافية.

    1. عندما تنشئ FirebaseApp يستخدمه المحرر ، لا تستخدم النسخة الافتراضية.

    2. بدلاً من ذلك ، قم بتوفير اسم فريد لاستدعاء FirebaseApp.Create() .

      هذا مهم لتجنب التعارض في الخيارات بين المثيل المستخدم بواسطة Unity IDE والمثيل الذي يستخدمه مشروع Unity الخاص بك.

منتجات Firebase المدعومة

تعرف على المزيد حول مكتبات Unity Firebase في الوثائق المرجعية .

تدعم حزمة Firebase Unity SDK منتجات Firebase التالية على نظامي التشغيل iOS و Android :

منتج Firebase حزمة الوحدة
AdMob يتم توزيعها بشكل منفصل في AdMob Unity Plugin
تحليلات FirebaseAnalytics.unitypackage
المصادقة FirebaseAuth.unitypackage
Cloud Firestore (ألفا) FirebaseFirestore.unitypackage
وظائف السحابة FirebaseFunctions.unitypackage
المراسلة السحابية FirebaseMessaging.unitypackage
(موصى به) FirebaseAnalytics.unitypackage
سحابة التخزين FirebaseStorage.unitypackage
كراشليتيك FirebaseCrashlytics.unitypackage
(موصى به) FirebaseAnalytics.unitypackage
روابط ديناميكية FirebaseDynamicLinks.unitypackage
(موصى به) FirebaseAnalytics.unitypackage
قاعدة بيانات الوقت الفعلي FirebaseDatabase.unitypackage
التكوين عن بعد FirebaseRemoteConfig.unitypackage
(موصى به) FirebaseAnalytics.unitypackage

منتجات Firebase المدعومة (سطح المكتب)

تتضمن حزمة Firebase Unity SDK دعمًا لسير عمل سطح المكتب لمجموعة فرعية من المنتجات ، مما يتيح استخدام أجزاء معينة من Firebase في محرر Unity وفي تصميمات سطح المكتب المستقلة على أنظمة التشغيل Windows و macOS و Linux.

منتج Firebase (سطح المكتب) حزمة الوحدة
المصادقة FirebaseAuth.unitypackage
وظائف السحابة FirebaseFunctions.unitypackage
Cloud Firestore (ألفا) FirebaseFirestore.unitypackage
سحابة التخزين FirebaseStorage.unitypackage
قاعدة بيانات الوقت الفعلي FirebaseDatabase.unitypackage
التكوين عن بعد FirebaseRemoteConfig.unitypackage

يوفر Firebase مكتبات سطح المكتب المتبقية كتطبيقات روتينية (غير وظيفية) للراحة عند الإنشاء لأنظمة Windows و macOS و Linux. لذلك ، لا تحتاج إلى ترجمة التعليمات البرمجية بشكل مشروط لاستهداف سطح المكتب.

الخطوات التالية