Version: 6000.3
语言: 中文
Android 库和 Android 存档插件简介
导入 Android 库插件

创建 Android 库插件

您可以创建一个 Android 库插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
在 Unity 中。创建后,您可以直接在 Unity 项目中使用它,也可以在 Android Studio 中进一步开发它。

要创建 Android 库插件,请按照以下步骤作:

  1. 在 Unity 项目中,创建MyFeature.androidlib文件夹。 此文件夹将表示Gradle:一种 Android 构建系统,可自动执行多个构建过程。这种自动化意味着不太可能发生许多常见的构建错误。更多信息
    请参阅术语表
    模块。

  2. 创建一个名为build.gradleMyFeature.androidlib文件夹并添加以下代码:

    apply plugin: 'com.android.library'
    
    dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    }
    
    android {
        namespace "com.company.myfeature"
        compileSdk getProperty("unity.compileSdkVersion") as int
        buildToolsVersion = getProperty("unity.buildToolsVersion")
    
        compileOptions {
            sourceCompatibility JavaVersion.valueOf(getProperty("unity.javaCompatabilityVersion"))
            targetCompatibility JavaVersion.valueOf(getProperty("unity.javaCompatabilityVersion"))
        }
    
        defaultConfig {
            minSdk getProperty("unity.minSdkVersion") as int
            targetSdk getProperty("unity.targetSdkVersion") as int
            ndk {
                abiFilters.addAll(getProperty("unity.abiFilters").tokenize(','))
                debugSymbolLevel getProperty("unity.debugSymbolLevel")
            }
            versionCode getProperty("unity.versionCode") as int
            versionName getProperty("unity.versionName")
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile    ('proguard-android-optimize.txt'), 'proguard-rules. pro'
            }
        }
    }
    
  3. MyFeature.androidlib文件夹:
    • MyFeature.androidlib/src
    • MyFeature.androidlib/src/main
  4. 创建一个AndroidManifest.xml文件MyFeature.androidlib/src/main文件夹并添加以下代码:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"/>
    
  5. 创建一个名为Controller.javaMyFeature.androidlib/src/main/java/com/company/feature/文件夹并添加以下代码:

    package com.company.feature;
    
    public class Controller
    {
        public static String getFoo()
        {
            return "This is my feature";
        }
    }
    

Android 库插件现已创建。

使用 Android 库插件

要在 Unity 项目中使用 Android 库插件,请使用以下代码:

using UnityEngine;

public class FeatureUser : MonoBehaviour
{
    readonly string ControllerName = "com.company.feature.Controller";
    AndroidJavaClass m_Class;
    void Start()
    {
        m_Class = new AndroidJavaClass(ControllerName);
    }

    private void OnGUI()
    {
        GUILayout.Space(100);
        GUI.skin.label.fontSize = 30;

        if (m_Class != null)
        {
            GUILayout.Label($"{ControllerName}.getFoo() returns " + m_Class.CallStatic<string>("getFoo"));
        }
        else
        {
            GUILayout.Label($"{ControllerName} was not found?");
        }
    }
}

开发 Android 库插件

由于 Android 库插件的源文件在 Unity C# 项目中不可见,因此修改或进一步开发插件需要执行以下其他步骤:

  1. 打开 构建配置文件(Build Profiles)(菜单:文件(File)> 构建配置文件(Build Profiles))窗口。
  2. 平台(Platforms) 面板的平台列表中,选择 Android(Android)。
  3. 平台设置(Platform Settings) 下,启用 导出项目和符号链接源(Export Project and Symbollink Sources)。
  4. 选择导出。
  5. 选择目标文件夹并单击“选择文件夹”以开始导出过程。
  6. Unity 导出 Gradle 项目后,将 Gradle 项目导入 Android Studio。

您可以从 Android Studio 开发 Android 库插件。由于 Unity 项目直接引用该插件,因此对 Android 库插件的任何修改都会自动反映在 Unity 项目中。

其他资源

Android 库和 Android 存档插件简介
导入 Android 库插件