Version: 6000.3
语言: 中文
调用 Android 代码的原生插件
从 C# 脚本调用 Java 和 Kotlin 插件代码

Java 和 Kotlin 源插件

Unity 可以将单个 Java 和 Kotlin 源文件解释为单独的插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
.

Unity 支持在源文件中编写的 Java 和 Kotlin 代码,其中.java.kt扩展。为此,Unity 将每个源文件解释为单独的插件,并在构建播放器时对其进行编译。如果您需要为单个项目编写少量代码,则这种类型的插件非常有用。如果您计划在多个项目中重复使用代码或将其分发给其他人,那么 Android 库或 Android 归档插件可能更合适。

创建 Java 或 Kotlin 源代码插件

要向 Unity 指示从 Java (.java) 或 Kotlin (.kt) 源文件,请按照下列步骤作:

  1. Assets 文件夹中,将 Java (.java) 或 Kotlin (.kt) 源文件。
    提示:最佳做法是创建一个子文件夹来包含 Java 和 Kotlin 源文件。
  2. 选择源文件并在检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
    请参阅术语表
    窗。
  3. 检查器(Inspector) 窗口的 选择插件平台(Select Platforms for plugin) 分段下,启用 Android
  4. 选择应用

【注】你可以将源文件放在项目中的任何文件夹中,但特殊用途位置(如StreamingAssets.如果将文件放置在这些位置,Unity 编辑器不会显示插件检查器

示例:创建和使用 Kotlin 源代码插件

以下示例演示了如何创建 Kotlin 源插件并从 C# 脚本访问其代码。这允许您在 Unity 项目中使用特定于 Android 的功能。

  1. 在项目的 Assets 文件夹中,创建一个名为 AndroidPlugins 的子文件夹,并添加一个 Kotlin (.kt) 文件。

      object KotlinStringHelper {
      @JvmStatic
      fun getString(): String {
         return "Hello from Kotlin"
      }
      }
    
  2. 选择 Kotlin 文件。在 检查器(Inspector) 窗口的 选择插件平台(Select Platforms for plugin) 分段下,启用 Android 平台。

  3. 选择应用

  4. 在 Unity 中,创建一个 C# 脚本并添加以下代码。此代码使用 AndroidJavaClass 访问静态 Kotlin 方法getString.

    
      using UnityEngine;
    
      public class KotlinExamples : MonoBehaviour
      {
         void Start()
         {
            using (AndroidJavaClass cls = new AndroidJavaClass("KotlinStringHelper"))
            {
               string value = cls.CallStatic<string>("getString");
               Debug.Log($"KotlinStringHelper.getString returns {value}");
            }
         }
      }
    
  5. 将 C# 脚本附加到游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    .有关详细信息,请参阅有关控制游戏对象的文档。

在导出的 Android Studio 项目中编辑 Java 或 Kotlin 文件

默认情况下,当您导出适用于 Android 的 Unity 项目时,Unity 会将所有 Java/Kotlin 文件复制到 Android Studio 项目。如果您在 Android Studio 中编辑这些文件,则更改不会反映在 Unity 项目中的原始文件中。如果您再次导出 Unity 项目,导出过程会覆盖您在 Android Studio 中的更改。

为了解决这个问题,Unity 提供了符号链接源构建设置。如果您选择此构建设置,Unity 会在 Android Studio 项目中创建一个指向 Unity 项目中的 Java/Kotlin 文件的符号链接,而不是复制文件。这意味着,如果您在 Android Studio 中编辑文件,更改将反映在原始 Unity 项目文件中。

其他资源

调用 Android 代码的原生插件
从 C# 脚本调用 Java 和 Kotlin 插件代码