- SDK接入准备步骤
接入第三的sdk的时候,第三方都会准备文档,demo等相关数据,在接入之前需要熟悉文档里面的接口,然后看下下sdk的demo,看下demo里面是怎么做的,最后就开始搭建环境。
2.android SDK的接入
我使用的是android studio(后面简称AS) 来作为接入android sdk的工具,然后看下sdk的demo里面使用的target sdk是多少,下与之对应的版本。对于安卓每一个activity就是一个界面,需要有一个activity继承自UnityPlayerActivity,如果需要接入闪屏并把闪屏作为mainactivity,其次是manifest文件这个是一个配置文件。那样的就需要再闪屏结束的时候把跳转到UnityPlayerActivity,不然会一直黑屏,相当于Unity无法在activity绘制相应的界面了。然后就是根据demo写好,照着写一个就行了,。然后用AS build出APK,这个期间会有问题的点主要就是在gradle的设置,把gradle的sdk版本与第三方的sdk版本对应,其次就是把gradle里面的application id需要去掉,不然会报错,然后把apply plugin 改成library,会在output文件夹下有一个aar文件,把里面的manifest,libs,res,asset,jar都拷入到工程里面的plugins/androids文件夹下,然后在C#这边通过AndroidJavaClass调用,有两种调用方式
这两种方式还是有区别的,我试验的结果是在activity中的方法只能是通过第一种方法来调用,而直接调用java的class文件的话可以通过第二种方法。最后就是处理各种Unity打包的各种报错,处理这种报错的基本思想就是别去关注前面的信息需要关注stderr中的报错信息,里面会有具体原因,一般就是你的res缺少某个文件,后者就是没按照SDK文档里面的把东西配置到manifest文件中,各种相应文件去找就行了。
3.IOS SDK的接入
在接入ios sdk的时候,因为不熟悉objective-c的语法花了很多,基本步骤与android 相同,说下不同的地方吧objective-c是需要自己把文件改成.mm的后缀,这个文件其实就相当于是java里面的class文件,在里面写上Unity与Ios通信的接口,Unity给Ios发送数据需要用extern "C"把接口包裹起来,因为objective-c是C语言,需要告诉编译器把接口都编译成C代码而不是C++,这样才能被Objective-c里面的接口调用,其次是一般接口会有回调使用的是objecttive-c的delegate来实现的,所以我们需要传入一个协议对象,一般协议对象就是自身,但是extern "C"中是无法访问到self这个对象的所以我们需要自己创建一个
就是这样一个单例模式就可以在extern 中访问到了,这样就可以传给协议了,剩下就是在协议的回调完成自己的逻辑,ios的好处是Xcode功能很强大能够调试.mm文件,但是缺点就是输出的log没有AS那么详细容易辨识,可能是用得还不习惯吧。
4.总结
其实SDK的接入算是游戏开发程序员的一项入门技能吧,只是有时候由于我们经常用的是C#,所以对另外的语言并不是很熟悉,所以会有点棘手,其实SDK的问题只要去不断的google或者baidu你就可以得到答案了,如果有些问题无法解决就去咨询下sdk的发行方。