UNITY JNI android插件GetApplicationContext()

时间:2012-10-29 12:55:04

标签: android java-native-interface unity3d

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

我如何获得此指针?我想将指针从Unity传递到我的Java类作为参数,但首先我必须在Unity端获取它。

2 个答案:

答案 0 :(得分:2)

以下是获取活动JNI风格的一些代码:

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var unityActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");

答案 1 :(得分:0)

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

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

然后,您可以操作上下文来完成在JAVA中使用Unity编写内容(C#) 希望它有所帮助。 :)