unity androidSDK和IOS内购

 项目突然要换SDK和做IOS内购,经过几天的忙终于搞定了。说说自己的经验吧。要接好androidSDK和做好IOS内购必须要有android和ios基础,不需要太精但是能看懂最起码。(还好自己对这两个都不是小白,都学过点时间)

先说IOS内购吧,在公司没有MAC只能到被IOS软件开发的同事那里build所以要吐槽下。IOS内购最烦人的不是代码而是申请key,还有就是上传二进制包,不知道别人如何我在这步卡了许久。还有一条就是IOS内购要小心处理已经有单在苹果商店但是还没成交的事态。

unity调用IOS :

[DLLIport("__Internal")]

static extern  定义IOS的函数()

IOS调用unity :

UnitySendMessage

再到androidSDK(这里我接的是百度SDK),1.修改androidxml加权限,加入需要手册里面的配置。2.写通用接口。3.定好订单的数据结构(我这里用的是json).4.主要不要在主线程里面做UI的操作所以用线程或者使用handler(推荐使用handler,原因我自己就用哈哈)

Android 调用Unity :

jc = new AndroidJavaClass("com.sdkapi.SDKAPI");

  jc.CallStatic("Init");

Unity 调用Android:

com.unity3d.player.UnityPlayer.UnitySendMessage(objName, funName,parms);


再来。。。就是不能接只能为接一个SDK而接,要想使通用性。哈哈。怎么做呢?

1.肯定要写个通用的接口类。比如BaseSDK类,里面什么也不做就是定义些接口比如init,Login,LogOut,Pay,GameCentre...这些通用接口。

2.每个平台的区分都是继承这个接口来写。比如android 就是androidSDK ,IOS就是IOSSDK咯自己决定。那么里面都做些什么就是上面的接口分别实现调用unity.

3.跟着就是写一个SDKManager用来管理所有的SDK,里面函数都是和BaseSDK一样就是怎么说呢,就是隔离开所有的上面的androidSDK和IOSSDK,写如下面。

    public SDKBase _sdkBase;

    public SDKInterface.CallBack _loginCallBack;  
    public PayData _currentPayData; //订单结构


    /// <summary>
    /// 初始化
    /// falg : 判断平台下那个SDK
    /// </summary>
    public void Init()
    {


        #if UNITY_EDITOR
            _sdkBase = new SDKBase();
        #elif UNITY_IPHONE  
            _sdkBase = new SDKForIOS();
        #elif UNITY_ANDROID   
            _sdkBase = new SDKForAndroid();
        #elif UNITY_STANDALONE_WIN
            _sdkBase = new SDKBase();
        #endif
          
_sdkBase.Init();

}

4.在android或者ios边同样的封装好接口,隐藏里面对sdk的细节部分,接口要和BaseSDK一样。那样就可以对接上了。

5.就是按照文档或者教程开始漫长的对接调试了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值