Unity工程里调用安卓的方法,需要用到JAR包。此文档主要介绍了三种导出JAR包和调用JAR包的方法。
- 使用方法1,需要修改程序的主Activity,所以可以在程序的生命周期做一些初始化和其他工作。
- 使用方法2,不需要修改主Activity,并可同时使用多个JAR包。
- 使用方法3,Unity脚本中的方法可以被JAR包内调用,通常用来接受广播并将信息发送到Unity。
1. 继承主MainActivity方式
Android工程中:
1、创建新的Android工程,在主MainActivity中定义,如:类名(com.example.MainActivity")
public static Activity unityActivity = null;
2、在onCreate()方法中,将setContentView代码行注释掉,并实现集成上下文,
unityActivity = this;
3、在主MainActivity中定义需要Unity调用的方法,如:
public void androidFunction() {}
4、将Android工程导出Jar包,如:unityToAndroid.jar
Unity工程中:
5、将Jar包(unityToAndroid.jar)拷贝到Unity工程中Assets/Plugins/Android/目录下。
6、修改Unity项目中AndroidManifest.xml文件中的主Activity为Android工程的类名。如:
<activity android:name="com.example.MainActivity" ......>
7、在需要调用方法的地方实现如下方法:
//packageName 是Android工程中的全类名,如
//string packageName = "com.example.MainActivity";
AndroidJavaObject UnitytoActivity = new AndroidJavaClass (packageName).GetStatic<AndroidJavaObject> ("unityActivity");
//UnitytoActivity .Call(); 或者UnitytoActivity .CallStatic()方法等,如:
UnitytoActivity .Call("androidFunction");
以上是通过修改Unity工程中的主Activity调用Android的jar包的完整步骤。
Android方法需要在生命中进行处理的建议使用该方法。