原地址:http://blog.csdn.net/alking_sun/article/details/36175187
1.安卓层开发并暴露接口。
- launcher activity(以下称为UnityActivity)最好要继承com.unity3d.player.UnityPlayerActivity
- UnityActivity不要设置View(
setContentView(R.layout.unity_start);),否则打包好的apk的界面就是设置的view - 接口如:public void functionName(Params param...);Params最好是String,int ,long等primitive
2.运行安卓程序。
不出意外会报错,而且是不能找到mono库。
3. 打包jar
运行完程序之后,ide将生成apk文件,在同文件夹下,会出现文件夹比如com,里面的文件结构就是安卓里面的package结构。
运行jar -cvf plugin.jar com
就会在文件夹下生成plugin.jar
然后放在projectin文件夹下。
4.在unity 里面写接口:
1.获得UnityActivity:
AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = cls_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject activity = cls_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
2.调用方法:
调用void 方法
activity.Call("functionName",param...);
调用返回值
activity.Call<return type>("functonName",params...);
5.放入资源文件:
文件机构如图:
Asset
-Plugins
--Android
AndroidManifest.xml
---assets
---bin
plugin.jar
---libs
---res
----drawable
----layout
----valus
注意:
原来放在libs的unity.jar 一定要删除掉
6.unity 打包apk
在PlayerSetting里面的bundlerIdentifier一定要和manifest里面的package 对应。