小米游戏中心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.xml到Android目录下,见上图。
修改包名为提交初审时的包名。
增加权限
在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:版本信息啥的不用管
4:icon label用默认的就可以
5:Activity节点直接拷贝复制,合并就行了,其中每个Activity里的android:name的内容不用关心,跟之前的所有包名都无关。
在这里我要非常感谢小米游戏中心的各位客服人员,尤其是技术哥ぷMeteor℡
- 小米游戏中心sdk接入unity
- air游戏接入小米支付sdk
- 小米sdk接入
- Unity游戏开发——unity接入多渠道sdk
- 小米开发者平台SDK接入
- 小米开发者平台SDK接入
- 小米支付SDK接入注意事项
- unity消息推送- 接入小米推送SDK-自定义消息通知声音
- 游戏SDK接入
- 小米SDK接入常见问题汇总【技术】
- go语言 服务器接入小米支付SDK
- [Unity通信]快速接入sdk
- unity项目接入 SDK 模版
- Unity接入百度地图SDK
- Unity接入百度地图SDK
- 安卓SDK接入Unity
- Unity接入sdk问题总结
- 快速 android SDK 接入 Unity
- Java提高篇(三三)-----Map总结
- 开关电源与线性电源的区别
- Oracle12c中SQL性能优化(SQL TUNING)新特性之自动重优化(automatic reoptimization)
- 【.Net码农】【PropertyInfo】List<T>转换为DataTable
- QT窗口置顶
- 小米游戏中心sdk接入unity
- using 命名空间指令和cookie保存实体类的一些问题
- Eclipse最有用的快捷键
- 学期总结
- SpannableString 记录
- 企业网站制作的决定因素
- 第13周项目5-拓扑排序算法的验证
- Java提高篇(三二)-----List总结
- Java提高篇(三一)-----Stack