本篇文章爲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