3

我正在使用 JNI 为 Unity Android 开发一个插件。我使用我的 Java 代码创建 .jar 文件,然后使用 c++ 桥创建 .so 文件。当我从 Unity 端调用我的库时,一切正常。所以,我的问题是,在我的 Java 代码的几个部分中,我需要访问主要活动 (UnityPlayer3d) 的上下文。我需要一个指向此活动的指针来调用函数 GetApplicationContext()。

我怎样才能获得这个指针?我考虑将 Unity 中的指针作为参数传递给我的 Java 类,但首先我必须在 Unity 端获取它。

4

2 回答 2

2

下面是一些获取活动 JNI 样式的代码:

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var unityActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
于 2012-11-08T22:12:27.107 回答
0

我认为您的逻辑是错误的,您不需要将 Context 指针从 Unity(C#) 传递给 Java,您可以在 Android Pluglin MainActivity 中获取 Context(这是您在帖子中提到的主要活动(UnityPlayer3d))直接作为跟随:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    context = this.getApplicationContext();
}

然后,您可以在 JAVA 中操作上下文来做一些事情,而不是用 Unity(C#) 编写它,希望对您有所帮助。:)

于 2014-05-22T02:02:04.657 回答