苦逼房奴一枚
全部博文(65)
分类: Android平台
2017-01-17 16:45:55
通常,游戏开发商并不会只在一个渠道上线他们的游戏,接入越多的渠道,代表着可能获取越多的用户,但同时也代表着越多的接入SDK工作量、工期和费用。一款游戏要有足够的用户,甚至需要接入30家以上的各种渠道,以保障自己的市场覆盖率。
单个SDK接入流程在一位有经验的全职客户端程序、一位全职服务端程序员、一位全职QA处理的情况下,需要3天时间才能完成。因此当一款产品面对30个甚至更多不同需求的渠道SDK时,人员成本和时间成本就会急剧增加。
所以我们需要一个通用接口,来处理各种渠道的需求,这就是统一渠道SDK接入框架。
下载地址:
将TypeSDKLibrary文件夹整个添加到Unity工程中,注意结构需要与截图统一。建议游戏中与当前导入的脚本命名冲突的文件,需要由开发者自行修改冲突的类名
添加后的目录结构如下所示
SDK普通接入逻辑示意图
1.1在调用其它API前需先调用初始化接口对SDK进行初始化。
1.2在完成初始化接口调用后方可调用登录接口,登录成功选择角色进入游戏后需要调用提交用户信息接口。
1.3登录成功后如果需要切换账号,需调用登出接口。
1.4对于有依赖于登录用户的接口,如支付,提交用户信息接口,需要调用获取用户信息接口拿到相关数据,如user_id….
1.5在游戏退出时需要调用退出接口。
SDK的接入需要接入程序员实现接口的调用和回调函数的响应两个部分逻辑
a. 回调函数的响应主要通过设置监听来实现,具体请看第二节(回调函数的处理)
回调侦听的事件类型 |
事件说明 |
TypeEventType.EVENT_INIT_FINISH |
SDK初始化完毕 |
TypeEventType.EVENT_LOGIN_SUCCESS |
登录成功回调 |
TypeEventType.EVENT_PAY_RESULT |
支付结果回调 |
TypeEventType.EVENT_LOGOU |
登出完毕回调 |
TypeEventType.EVENT_RELOGIN |
重新登录成功回调 |
TypeEventType.EVENT_CANCEL_EXIT_GAME |
取消杀应用回调 |
b. 接口的调用主要为以下的接口调用,将会下后面详细讲解每个接口的调用
接口列表
函数名称 |
功能说明 |
InitSDK |
SDK初始化 |
Login |
显示登录界面 |
Logout |
执行渠道登出,清理渠道用户缓存 |
PayItem |
显示支付界面 |
ShowPersonCenter |
显示用户中心(如果渠道支持) |
ExitGame |
大退游戏(等于杀进程) |
IsHasRequest |
判断渠道是否支持某功能(例如:用户中心) |
UpdatePlayerInfo |
提交用户信息到渠道(渠道要求在进入游戏后调用) |
typesdkbaselib中已经提供了预先注册完毕所有回调侦听的cs文件:U3DTypeEventListener.cs接入方需要在U3DTypeEventListener监听类中,根据不同回调事件实现相应的游戏逻辑。
也可以根据自己需要,在游戏内合适的地方,参考demo自行注册相关的函数侦听。
注:接入方只能修改以下方法实现相应的逻辑,U3DTypeEventListener类中其它代码段建议不要更改,以免影响功能。
部分需要界面响应的监听,请判断当时场景,避免造成游戏逻辑混乱。如,在PVP时检测到用户切换账号。
点击(此处)折叠或打开
sdk用到的数据类型 都继承于U3DTypeBaseData,相关使用示例如下:
3.1创建U3DTypeBaseData对象
点击(此处)折叠或打开
3.2设置一条属性
函数名 |
public void SetData(string attName,string attValue) |
|
参数列表 |
string attName, |
U3DTypeAttName中定义的字段 |
|
string attValue |
目前支持int,string,boolean 三种类型基本数据 |
返回值 |
Void |
|
示例:
点击(此处)折叠或打开
3.3获得一个string类型的属性 attname为标识
函数名 |
public string GetData(string attName) |
|
参数列表 |
string attName, |
U3DTypeAttName中定义的字段 |
返回值 |
String |
指定key值的string类型value |
3.4获得一个int类型的属性 attname为标识
函数名 |
public int GetInt (string attName) |
|
参数列表 |
string attName, |
U3DTypeAttName中定义的字段 |
返回值 |
Int |
指定key值的int类型value |
3.5获得一个bool类型的属性 attname为标识
函数名
函数名 |
public bool GetBool(string attName) |
|
参数列表 |
string attName, |
U3DTypeAttName中定义的字段 |
返回值 |
Bool |
指定key值的boolean类型value |
使用例子:
点击(此处)折叠或打开
响应消息传递的消息类型
public class U3DTypeEvent
函数名 |
public bool GetBool(string attName) |
|
成员变量列表 |
public TypeEventType evtType |
该事件的类型(枚举) |
|
public U3DTypeBaseData evtData |
该事件所包含的数据(可以通过上述函数获取相关数据)
|
事件对象例子
点击(此处)折叠或打开
函数名 |
public void InitSDK() |
说明 |
sdk的初始化接口,再调用其他sdk功能前,请务必先执行该接口,所有渠道都要求在应用启动开始就调用此接口。 |
调用例子
点击(此处)折叠或打开
函数名 |
public void Login () |
说明 |
显示登录界面,若登录成功则会发送TypeEventType.EVENT_LOGIN_SUCCESS消息。请在登录界面自动执行调用,不要出现需要点击按钮才显示的情况。 当用户登录失败时需要,再次调用此接口。 |
调用例子
点击(此处)折叠或打开
函数名 |
public void UpdatePlayerInfo () |
说明 |
在有些指定事件,需要设置用户相关信息并且提交。登录完成进入游戏、用户升级、建角。 |
调用例子
点击(此处)折叠或打开
当用户成功完全登录进入游戏后,需要设置用户相关信息并且提交
该函数的所有内容,不能使用SDK客户端本地缓存的数据,建议从服务端获得
需要设置的属性如下,当没有该属性时,请传空字符串
点击(此处)折叠或打开
参数值 |
说明 |
"0" |
进入游戏主场景(即正式登录游戏) |
"1" |
创建新角色 |
"2" |
角色升级 |
设置方法示例:
点击(此处)折叠或打开
函数名 |
public string PayItem (U3DTypeBaseData _in_pay); |
说明 |
在获取服务器订单号,并在TypeSDK Server服务器提交订单信息后,调用此接口启动渠道的支付界面,进行支付行为 |
调用例子
点击(此处)折叠或打开
其中U3DTypeBaseData中
点击(此处)折叠或打开
必填参数为:
点击(此处)折叠或打开
其中event的使用类似 login
event中data的参数包括以下内容
点击(此处)折叠或打开
函数名 |
public void Logout (); |
说明 |
调用渠道的登出逻辑,不会有界面显示,但是会把渠道账户注销,需要由cp自行回到登录界面 |
调用例子:
点击(此处)折叠或打开
登出成功则会发送 TypeEventType.EVENT_LOGOUT消息,发送的参数U3DTypeBaseData数据
函数名 |
public void ExitGame (); |
说明 |
调用渠道退出应用程序逻辑,执行成功,则会关闭应用 |
点击(此处)折叠或打开
整个游戏的退出行为 ,建议交给sdk处理,并且添加 退出行为取消响应事件侦听TypeEventType.EVENT_CANCEL_EXIT_GAME 的函数
当退出成功后 由sdk执行系统的退出,当退出取消后,则会发送 取消退出事件,接入方需完成相应的逻辑。
U3DTypeSDK.Instance.GetPlatformData()
包括以下内容:
点击(此处)折叠或打开
以上参数 在CPSeting.txt中填写(接入方无需关心)
显示渠道用户中心
点击(此处)折叠或打开
隐藏用户中心
点击(此处)折叠或打开
在调用这2个函数之前 需要先执行IsHasRequest(U3DTypeAttName.SUPPORT_PERSON_CENTER)函数 用以判定 是否需要支持该函数。
当支持时 这2个函数才会起效,并且需要在游戏内,需要有相应的图形入口,
当不支持时,这2个函数不会生效,游戏内页不需要相应的图形入口。
使用示例:
点击(此处)折叠或打开
或
点击(此处)折叠或打开
点击(此处)折叠或打开