自己学习的笔记,写的不是很详细,如果想详细了解SDK对接,去学习一下siki的这个课程,快速学习一下,大概一晚上时间就差不多了!开始!
在安卓工程下分很多molule(库模块),每个module可以创建一个安卓应用
安卓视图下,res下是资源(图片,布局文件),java下是代码,manifest文件,
SetContentView(R.layout.activity_main) 方法可以注释掉,是用来设置当前显示的布局,当前的activity(界面)不需要显示
安卓通过Class.jar与unity进行通信(位于unity的安装目录)相当于untiy给安卓提供的插件
上面是它的目录,
工程视图下的lib是用来添加插件安卓插件的(jar);
选中libs,然后ctrl +V,选后jar包,右键,add as library;然后选择自己的模块bmobPay;
MainActivity需要继承UnityPlayerActivity,会自动导入com.unity3d.player.unitPlayerActivity;
java中的方法习惯小写,在unity中调用test1方法
在安卓视图下选中项目(app)右键,
可以看到安卓sdk和jdk的位置
在AS中选中BmobPay点击Build Module BomobPay(实际项目中为你的建的项目名)
所有生成的文件放这里
再Project试图下,选择BmobPay下Intermediates=========>Bundels========>debug中有需要的资源
Libs下的Class是unity导入进来的,
把Libs下的class删掉,debug中的class.jar是AS中生成的。将生成的Class放入libs下
复制AndroidMainifest,Res,Libs到Unity工程中,
可以打包测试,打包的时候包名要确保和AS配置文件中的包名一致。
AS中调用Unity中的方法:
Unity.UnitySendMessage(str1,str2,str3);游戏物体,调用的方法,传递的函数
Unity调用安卓的方法
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");//得到当前的主Activity
if (payType == PayType.Zhifubao) {
jo.Call("payByZhifubao", price, foodName);
}
else {
jo.Call("payByWeixin",price,foodName);
}
下载BmobSDK,把四个Jar包复制到安卓的libs下,然后再Addsdbibrary,jar包相当于java插件
修改AndroidManifest配置,权限,配置完成之后
再重新build Mddule 然后删掉libs下Class,最后把Libs,AndroidManifest,Res再到入Unity
用360连接手机,然后点build and Run,屏幕上出现146,调用成功
安卓中调用Unity中的方法
unity中调用安卓的test1,安卓中test1反过来调用unity的Test2,通过按钮来调用
从新发布
libs下的class删了,把外面的Class放到libs 下
unity工程中的原来的这三个文件sha删掉,放入新生成的
然后在unity中再打包
导入Jar包