【问题标题】:Using classes on Android Studio in Unity在 Unity 中使用 Android Studio 上的类
【发布时间】:2016-11-09 02:21:28
【问题描述】:

我在 Android Studio(接收恒定数据流的蓝牙服务器套接字)上创建了一个项目,我想知道是否可以将其转换为我可以在 Unity 上使用的 .dll? Unity 使用 Javascript,但代码是用 Java 编写的,但我知道如果我将 Java 做成一个库,Java 可以嵌入到 JavaScript 中。我做了相当多的研究并使用 gradle 导出 .jar 文件,然后我读到我可以使用 IKVM 将 .jar 转换为 .dll,但有人说 IKVM 不能用于 android 项目?这是真的?如果是这样,有没有办法可以在 Unity 上使用该类?

【问题讨论】:

    标签: javascript java android-studio unity3d cross-platform


    【解决方案1】:

    我不会担心创建一个dll,一个jar就足够了。

    最终目标是生成 your_plugin.jar 文件,并将其移动到Assets/Plugins/Android/your_plugin.jar。然后您可以通过 JNI 使用 C#(或者可能是 Javascript)访问它。

    我建议关注this 教程。

    jist 是,在您的 jar 文件中,您扩展默认 UnityPlayerActivity 并创建您需要的任何方法。我会从一些简单的东西开始,它只返回一个字符串。生成jar文件,放入Assets/Plugins/Android。在同一目录中创建一个 AndroidManifest.xml,这会导致 Unity 使用您的扩展 Activity 而不是默认启动。在 Unity 端,获取对您扩展的活动的当前实例的引用,然后调用您的方法,如下所示:

      // get a reference to the class
      AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
    
      // get a reference to the class instance from a static variable
      AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject> ("currentActivity");
    
      // call a method in your UnityPlayer class that returns a string
      String s = currentActivity.Call<string>("myJavaMethodReturningString");
    

    【讨论】:

      【解决方案2】:

      除了 JavaScript Unity 3d 还支持 C# 看看这里也许有帮助...

      http://answers.unity3d.com/questions/330809/integration-of-jar-file-using-jni.html

      【讨论】:

        猜你喜欢
        • 2018-07-21
        • 1970-01-01
        • 2018-07-20
        • 1970-01-01
        • 2016-08-23
        • 2020-01-17
        • 2018-07-19
        • 2016-11-09
        • 2017-09-01
        相关资源
        最近更新 更多