本篇文章为Unity与Android交互的进阶,基础操作一概简述,有不懂的地方请自行搜索。
一、Unity中调用Android中的方法
1、调用MainActivity中的方法
AndroidJavaClass UnityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo= UnityClass.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("MethodName");
2、调用其他Activity中的Static方法
AndroidJavaClass jc = new AndroidJavaClass("com.test.demo");
jc.CallStatic("StaticMethodName");
二、在同一个Android Studio项目中建多个Module
1、新建一个Module作为主Module,包名同Unity中的包名保持一致,导入Unity的classes.jar,新建一个EmptyActivity继承自UnityPlayerActivity,Unity调用的方法写在此处,在AndroidManifest.xml中添加
<activity android:name="你的包名">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
</activity>
2、其他Module不需要导入Unity的classes.jar,包名与Unity中的包名不一致,新建的EmptyActivity继承自Activity即可,Unity调用的方法写在此处,在AndroidManifest.xml中添加
<activity android:name="Module的包名.EmotyActivity名"> </activity>
3、点击Build->Rebuild Project,完成后找到需要的arr包。
4、打开导入了classes.jar的arr包,复制AndroidManifest.xml到Unity的Android目录下,删除libs中的classes.jar,同其他arr一同放到Unity中的Android目录下
注:Unity在打包APK的过程中会自动合并arr包中的AndroidManifest.xml的内容到Unity中Android目录下的AndroidManifest.xml