Unity接入第三方SDK和自己的SDK合并 Unity和Android通信
2018-01-20 13:47
495 查看
安卓版
1.我在自己的项目中接入了ShareSDK,实现登录分享功能,但我还需要写个自己的SDK实现一些unity并没有提供的功能,譬如电量,wife,获取相册等功能。2.我曾尝试写个安卓工程继承UnityPlayerActivity,在和ShareSDK的AndroidManifest文件合并,让自己的Activity作为主启动项,但是打包出来出现2个图标,我也不知道咋回事。
3.最后想出一个办法,在java中写一个类,引用com.unity3d.player.UnityPlayer包名,能向unity 发送消息,在类中写个方法返回这个类的对象,在unity层 就可以new个java类,通过调用这个java类的静态方法,得到类的对象,通对象调用对象上的方法。这就实现的unity和java的通信,即使在有其他SDK存在的情况下
4.代码如下
java层:
package com.sanyougame.guangliyx; import com.unity3d.player.UnityPlayer; public class MainActivity { public static MainActivity mainActivity=null; public void Init() { UnityPlayer.UnitySendMessage("LuaTools", "Receive", "在jar包中MainActivity初始化了"); } //得到MainActivity对象 并执行初始化方法 public static MainActivity GetMainActivity() { if(mainActivity==null) { mainActivity=new MainActivity(); } mainActivity.Init();//初始化 return mainActivity; } public void Say(String msg) { //Toast.makeText(this, "Say", Toast.LENGTH_LONG).show(); UnityPlayer.UnitySendMessage("LuaTools", "Receive", "进入jar保重并传递给unity了"); } }
unity层
using UnityEngine; using System.Collections; public class GASDK { public static void CallAndroid(string msg) { Debug.Log("add by keshen ----->>>>CallAndroid"); AndroidJavaClass jc = new AndroidJavaClass("com.sanyougame.guangliyx.Testxk");//参数包名.类名 >>得到一个AndroidJava类 Debug.Log("add by keshen ----->>>>cla" + jc); jc.CallStatic("init", "toast");//CallStatic调用java类中的静态方法(方法名,可变参数数组) Debug.Log("add by keshen ----->>>>jo" + jc); AndroidJavaObject jo = jc.CallStatic<AndroidJavaObject>("getInstance");//调用java类中的静态方法返回一个java对象 //AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("getInstance");//GetStatic 得到java类中静态字段对象的java对象 jo.Call("say");//java对象调用普通方法,可传参也可不传 Debug.Log("add by keshen ----->>>>jo init初始化完成" + jo); } }
相关文章推荐
- Unity接入第三方SDK发布android闪退
- Android开发接入第三方原生SDK实现微信登录
- Unity接入sdk时(和android交互),提示IOException错误解决方式。
- cocos2d-x 接入android ,登录第三方SDK时屏幕不断闪烁刷屏的问题解决
- UnitySDK接入——Android篇
- Unity 接入 Android SDK APK 图标 icon和 APK ProductName设置
- Unity3D如何接入第三方的SDK - Android篇
- Unity Android平台接入支付宝SDK
- unity接入android七鱼sdk记录一二
- AIR Native Extension for Android 接入第三方sdk 如何实现生命周期
- Android快速SDK(23)第三方授权登录库ThirdLogin【肌肉记忆,分钟接入】
- Unity3D如何接入第三方的SDK - Android篇
- unity 引入 android第三方sdk
- Unity接入Android各渠道SDK的坑
- Unity与Android交互 支付SDK接入流程
- Unity接入android版的微信sdk记要
- 教你快速高效接入SDK——Unity统一接入渠道SDK(Android篇)
- Unity 、Eclipse Android平台、接入支付宝SDK