توافق محرِّر Unity مع Android

إنّ إصدار "أداة إنشاء ألعاب Unity" مرتبط بإصدار محدّد من Gradle الذي يمكن أن يتعارض مع التبعيات المطلوبة لحِزم Android الأحدث، مثل "إعلانات Google للأجهزة الجوّالة". يرشدك الدليل التالي إلى كيفية إنشاء إصدار لنظام التشغيل Android على إصدارات سابقة من "محرر Unity".

يقترح الجدول التالي الحد الأقصى من الإصدار المتوافق من المكوّن الإضافي لـ "إعلانات Google على الأجهزة الجوّالة" لاستخدامه استنادًا إلى "أداة إنشاء ألعاب Unity".

محرِّر Unity إصدار المكوّن الإضافي Unity المُقترَح لخدمة "إعلانات Google" على الأجهزة الجوّالة
2023.1 أو إصدار أحدث الأحدث
‎2021.3.41f1 - ‎2022.3 9.1.0
2021.3.37f1 أو إصدار أقدم 8.5.3

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

تعديل إعدادات الإصدار 2022.3 والإصدارات الأقدم

تتطلّب الإصدارات 2022.3 من Unity والإصدارات الأقدم إجراء تغييرات على إعدادات الإنشاء قبل التصدير إلى IDE IDE Android Studio.

إنشاء baseProjectTemplate.gradle

  1. فعِّل نماذج Gradle المخصّصة. انتقِل إلى إعدادات المشروع > المشغّل > Android > إعدادات النشر > الإنشاء، ثم اختَر: نموذج Gradle الأساسي المخصّص. يؤدي ذلك إلى إنشاء ملف Plugins/Android/baseProjectTemplate.gradle.

  2. عدِّل ملف Plugins/Android/baseProjectTemplate.gradle لاستخدام أدوات Gradle الإصدار 8.1.1 أو إصدار أحدث.

    plugins {
        id 'com.android.application' version '8.1.1' apply false
        id 'com.android.library' version '8.1.1' apply false
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

تغييرات إضافية في الإصدار Unity 2021.3.37f1 والإصدارات الأقدم

يتطلب الإصدار 2021.3.37f1 من Unity والإصدارات الأقدم تغييرات إضافية لترقية التوافق مع Gradle 8.1.1. أكمِل الخطوات التالية:

إنشاء ملف launcherTemplate.gradle

  1. انتقِل إلى إعدادات المشروع > المشغّل > Android > إعدادات النشر > الإنشاء، ثم اختَر نموذج Gradle لتطبيق مشغّل التطبيقات. يؤدي ذلك إلى إنشاء ملف Plugins/Android/launcherTemplate.gradle.

  2. عدِّل Plugins/Android/launcherTemplate.gradle لتضمين سمة مساحة الاسم. يجب أن تتطابق قيمة سمة مساحة الاسم مع سمة الحزمة المتوفّرة في ملف AndroidManifest.xml الخاص بوحدة المشغّل.

    android {
        // TODO: Replace with your app's package name.
        namespace 'com.google.android.gms.example'
    }
    

إنشاء mainTemplate.gradle

  1. انتقِل إلى إعدادات المشروع > اللاعب > Android > إعدادات النشر > الإنشاء، ثم اختَر نموذج Gradle الرئيسي. يؤدي ذلك إلى إنشاء ملف Plugins/Android/mainTemplate.gradle.

.

  1. عدِّل Plugins/Android/mainTemplate.gradle لتضمين سمة "مساحة الاسم" بالقيمة com.unity3d.player.

    android {
        namespace 'com.unity3d.player'
    }
    

التصدير إلى "استوديو Android"

  1. عدِّل إعدادات إنشاء تطبيق Android لتصدير مشروع Unity.

  2. للتصدير إلى Android Studio، عليك تعديل إعدادات إنشاء تطبيق Android. اختَر ملف (أو Unity Editor على نظام التشغيل macOS) > إعدادات الإنشاء وضع علامة في المربّع بجانب تصدير المشروع:

  3. اضغط على الزر تصدير في أسفل مربّع الحوار "إعدادات الإصدار". تنشئ Unity مشروع Android في الموقع المحدّد.

  4. افتح المشروع الذي تم تصديره في Android Studio.

تعديل إعدادات JDK في Gradle لاستخدام JDK 17

  1. باستخدام "استوديو Android"، افتح إعدادات Gradle من ملف (أو استوديو Android على نظام التشغيل macOS) > الإعدادات > الإنشاء والتنفيذ والنشر > أدوات الإنشاء > Gradle.
  2. ابحث عن القائمة المنسدلة Gradle JDK. عدِّل حزمة JDK في Gradle لاستخدام JDK 17.

    إذا لم يكن لديك JDK 17 مثبّتًا، اختَر تنزيل JDK من قائمة Gradle JDK المنسدلة ونزِّل إصدارًا متوافقًا. ننصحك باستخدام موفِّر وقت تشغيل JetBrains الذي يتيح استخدام arch64، وذلك لمطابقة ما يوزّعه Android Studio.

تعديل ملفات حِزم Gradle

عدِّل المَعلمة distributionUrl داخل gradle/wrapper/gradle-wrapper.properties لاستخدام Gradle 8.0.1 أو إصدار أحدث.

   distributionBase=GRADLE_USER_HOME
   distributionPath=wrapper/dists
   zipStoreBase=GRADLE_USER_HOME
   zipStorePath=wrapper/dists
   distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip

تغييرات إضافية في "استوديو Android" لإصدار Unity 2021.3.37f1 والإصدارات الأقدم

يتطلب الإصدار 2021.3.37f1 من Unity والإصدارات الأقدم تغييرات إضافية لتحسين ملف برمجي لأجل الترقية إلى التوافق مع الإصدار 8.1.1 من Gradle. أكمِل الخطوات التالية:

  1. عدِّل السمة gradle.properties وأزِل السمة android.enableR8=false.

  2. عدِّل unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle و أضِف سمة نطاق اسم بقيمة "com.google.unity.ads":

    apply plugin: 'android-library'
    
    dependencies {
        implementation fileTree(dir: 'bin', include: ['*.jar'])
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    }
    
    android {
        namespace "com.google.unity.ads"
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                //java.srcDirs = ['src']
                res.srcDirs = ['res']
                assets.srcDirs = ['assets']
                jniLibs.srcDirs = ['libs']
            }
        }
    
        compileSdkVersion 35
        buildToolsVersion '30.0.3'
        defaultConfig {
            targetSdkVersion 31
        }
    
        lintOptions {
            abortOnError false
        }
    }
    

تشغيل مشروع Android

بعد إكمال هذه الخطوات، يصبح تطبيق Unity جاهزًا. من "استوديو Android"،شغِّل gradle sync، ثم شغِّل المشروع.