小米游戏中心sdk接入unity

来源:互联网 发布:微信时时彩源码 编辑:程序博客网 时间:2024/03/29 01:29

最近因为项目的需要,需要接入金山云的渠道:小米游戏中心,不过接入过程可谓是历经坎坷,下面我来分享一下个人经验。

 

我们的开发工具为:Unity4.3.4 Pro

在提交初审版本后,讨论组里的人会发给我们一个链接

http://dev.xiaomi.com/docs/gameentry/手机&pad游戏接入文档/应用内支付SDK/

下载商用版sdk Vxxxx

 

进入以下链接:http://dev.xiaomi.com/docs/gameentry/手机&pad游戏接入文档/手机网络游戏SDK集成指南/

 

不过没做过接入的同学可能对网站的导航比较迷糊,所以进入网页后,下图指定的位置和链接大家不要关心,下边的两个demo,也不要管

大家只要跟着我的思路走就可以了,我们首先需要测试的是登陆功能,所以这就需要一些前提,大家能看懂下边的业务流程图就可以了

其中第2个要求大家不用管,这是由小米的人员后台配置的,我们只管放心做功能就好。

 

小米游戏中心提供给我们的sdk,并不是unity资源包,不能直接导入,我们打开看一下:刚刚下载的sdk

Sdk_service里包含的是小米游戏中心的服务安装包MiGameCenterSDKService.apk

Sdk_lib里包含的是建立安卓工程需要引用的库SDK_TY_xxxx.jar

我们只关心这两个文件,其他的案例程不必费神,跟实际要做的内容没有多少借鉴(本文只关心第一次sdk接入的具体操作)。

 

对于没有开发过安卓的菜鸟来说(比如我自己),大家可能一开始时一头雾水,大家在看到下边图示时,可能不知道它要我们做什么

首先,我们必须自己建立安卓工程,类型为库工程。

确保你的机器上已经安装了必要的Android SDK Manager,和 SDK Tools

更新地址:http://www.androiddevtools.cn

确保你的机器上已经安装了Eclipse和对应版本的ADT

下载地址:http://tools.android-studio.org/index.php/adt-bundle-plugin

 

在打开eclipse时可能会弹出错误

只要按以下方式处理就好

 

确保eclipse有如下配置:

新建安卓工程:

填写好类库的工程名,和包名,注意这个包名最好是com.公司名.项目名的结构。这个包名与AdroidManifest.xml里的package,还有Unity项目中发布时填写的Bundle Identifier和我们提交审核时的应用程序名完全不相关。

 

选择好最低sdk版本和最高版本,Theme要选为None,如下图所示:

继续到下图:

 

这样库项目就完成了。如下所示:

把压缩包里的MiGameCenterSDKService.apk拖到assets目录下。

SDK_TY_xxxx.jar拖到libs目录下。

打开Unity安装目录,复制Editor\Data\PlaybackEngines\androidplayer\release\bin\classes.jar

libs目录下。

 

添加一个工具类,填写类名和创建项目时的包名

以下代码仅供参考:

 

小米的sdk不要求我们创建独立的Activity,所以我们直接使用Unity本身正在使用的当前Activity,只是请注意,一定要使用runOnUiThread来调用,否则可能会出现调用不到的情况。

这里我提供了两个静态方法,用于C#脚本中调用的,当然也可以用普通方法。

 

接下来需要配置AndroidManifest.xml

 

首先按小米文档的要去增加权限

 

注意看:上边的package,只是用于Unity发布成安卓后,对生成的安卓项目的识别,当导出工程时,还需要手动复制到Unity里,自然还要修改成提交初审时,项目包的名字。

这里不得不提一个大坑,奉劝各位在提交初审的时候,一定不要在两个小数点内用纯数字

最好是vXXXX 啥的,至于为啥,为人民服务。

选择项目->Export

导出的项目assets里的内容, res的内容

 

选择导入位置,上图Jar file就导入到bin目录。

 

按照下图建立Android目录,保证有bin子目录

复制res目录到Android目录,如下图:

一定不要搞错了,不是bin下的res,否则会出现v11,v14目录找不到的错误。

 

手动拷贝AndroidManifest.xmlAndroid目录下,见上图。

修改包名为提交初审时的包名。

增加权限

Unity的资源目录下,随便建立一个目录,用于存放小米游戏中心服务程序:

 

拷贝MiGameCenterSDKService.apk到该目录下。如果忽略此步骤,那么在游戏安装到手机后,启动游戏时,会提示你安装。

 

以下是我的参考代码:

注意上边的javaClassName的包名就是我们建立的安卓工程里的包名,目的是为了使用我们定义好的工具类,然后就可以把这个脚本挂载游戏对象上了。

 

KsyunManager脚本挂在GameRoot全局游戏对象上。

 

一般需要在游戏初始化阶段调用

然后在登录时调用

此俩句代码最好不要放在一起调用,否则可能会收到102 fail消息。

 

Unity安卓的导出设置里,把Bundle Identifier改成提交初审时的包名。

有些人导出的时候会提示找不到的错误,没关系,这可能是刚安装SDKManager的缘故,大家可以到网上找找或者从别的SDK Manager目录考过去。

 

至此,一切工序完毕,可以导出看log效果了,如果登陆成功,手机上会弹出小米游戏中心的欢迎提示。

 

只要接入正常,就可以反复测试,无需考虑数据状态清理问题。

 

如果项目之前接过其他的第三方sdk,怎么办?因为他们也会使用Android目录,也会有AndroidManifest.xml文件,但Unity内只允许有一个,此时就需要手动合并了。

1:我们不用关心以前的sdk package是什么,因为它只跟我们项目有关,跟sdk是谁无关,所以无需关心。

2:把权限全部合并在一块。

3:版本信息啥的不用管

4icon label用默认的就可以

5Activity节点直接拷贝复制,合并就行了,其中每个Activity里的android:name的内容不用关心,跟之前的所有包名都无关。

在这里我要非常感谢小米游戏中心的各位客服人员,尤其是技术哥ぷMeteor℡

0 0
原创粉丝点击