Unity Android插件制作和合并多个安卓插件

来源:互联网 发布:vm不能安装mac os x 编辑:程序博客网 时间:2024/06/04 17:17
安卓插件制作
1.一个是继承UnityPlayerAcivity-适合只集合了一个安卓插件

2.一个是只有安卓代码,没有Activity-适合多插件集合

这里使用的Eclipse开发


第一种方式(适合只集合了一个安卓插件):
1.创建安卓项目
2.导入unity中的calss.jar文件
3.在主MainActiviy中继承 UnityPlayActivity
4.安卓项目主入口删除setContentView(R.layout.activity_main);  //如果不删除导出的apk默认启动这个Acitivity布局
5.选择src和Gen这两个目录里面的java代码到处为jar,scr目录是我们创建的java代码,Gen目录包含BuildConfig.java 和 R.java ,记录着配置代码和布局,如果插件不包含布局可不用导出,如果有布局,必须要导出,否者在打包的时候会报错

 

6.在Unity创建如下目录,将res和AndroidManifest.xml直接放到Android目录下,libs存放第三方jar库,AVProVideo是我们导出的jar包
res:里面包含了String,图标,如果要改变app图标,直接把res里面的图片替换即可

 

7.调用Android方法
AndroidJavaClass Activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
Activity.Call("方法名称");


第二种方式:(适合多插件集合)
如果Unity里面需要包含了多个安卓插件,Android目录将各个插件分类,例如:有四个插件,AvPro(视频播放插件),MySDK(自己创建的插件),Vufroia(高通插件),Android根目录不要有 res,Manifest.xml文件

 


技巧:打包的时候,会合并各个插件的Manifest.xml文件,
1.创建安卓项目
2.这里需要注意的是不需要主Activity,所以不需要继承UnityPlayerActivity,但是可以创建自己的Activity
3.创建java文件,在里面写自己需要的功能,如果功能需要Activity对象,这里建议使用传参数的方式传入-如何传入在C#调用方法的时候会说明
 
4.直接打包jar,这里我们只需要打包Test.java文件即可,命名为:UnityForAndroid.jar

 


5.将jar文件放到MySDK目录下:这里要说明下,这个插件里面并没有包含布局文件,也就没有了Activity,所以不需要Manifest文件和Res文件夹以及R.java文件
 
6.调用安卓方法:
//我们获取当前安卓类的currentActivity,也就是当面画面的Activity
AndroidJavaObject ActivityContext = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
//直接获取java对象
AndroidJavaObject Test = new AndroidJavaObject("com.space.unityforandroid.Test"); //包名+类名
//调用方法
Test.Call("ShowToast", ActivityContext);





原创粉丝点击