我整理了一些关于软考的项目学习资料(附讲解~~)和大家一起分享、学习一下:
https://d.51cto.com/eDOcp1
一、引言
通常,游戏开发商并不会只在一个渠道上线他们的游戏,接入越多的渠道,代表着可能获取越多的用户,但同时也代表着越多的接入SDK工作量、工期和费用。一款游戏要有足够的用户,甚至需要接入30家以上的各种渠道,以保障自己的市场覆盖率。
单个SDK接入流程在一位有经验的全职客户端程序、一位全职服务端程序员、一位全职QA处理的情况下,需要3天时间才能完成。因此当一款产品面对30个甚至更多不同需求的渠道SDK时,人员成本和时间成本就会急剧增加。
所以我们需要一个通用接口,来处理各种渠道的需求,这就是统一渠道SDK接入框架。
二、资源导入
下载地址: https://github.com/typesdk/TypeSdkClient
将TypeSDKLibrary文件夹整个添加到Unity工程中,注意结构需要与截图统一。建议游戏中与当前导入的脚本命名冲突的文件,需要由开发者自行修改冲突的类名
添加后的目录结构如下所示
三、代码接入
1、接入流程简要描述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. 接口的调用主要为以下的接口调用,将会下后面详细讲解每个接口的调用
接口列表
2、回调函数的处理
typesdkbaselib中已经提供了预先注册完毕所有回调侦听的cs文件:U3DTypeEventListener.cs接入方需要在U3DTypeEventListener监听类中,根据不同回调事件实现相应的游戏逻辑。
也可以根据自己需要,在游戏内合适的地方,参考demo自行注册相关的函数侦听。
注:接入方只能修改以下方法实现相应的逻辑,U3DTypeEventListener类中其它代码段建议不要更改,以免影响功能。
部分需要界面响应的监听,请判断当时场景,避免造成游戏逻辑混乱。如,在PVP时检测到用户切换账号。
3、SDK传递的基本数据类型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
该事件所包含的数据(可以通过上述函数获取相关数据)
事件对象例子
4、接口接入与描述(1)初始化函数名
public void InitSDK()
说明
sdk的初始化接口,再调用其他sdk功能前,请务必先执行该接口,所有渠道都要求在应用启动开始就调用此接口。
调用例子
(2)登录函数名
public void Login ()
说明
显示登录界面,若登录成功则会发送TypeEventType.EVENT_LOGIN_SUCCESS消息。请在登录界面自动执行调用,不要出现需要点击按钮才显示的情况。
当用户登录失败时需要,再次调用此接口。
调用例子
(3)提交用户信息函数名
public void UpdatePlayerInfo ()
说明
在有些指定事件,需要设置用户相关信息并且提交。登录完成进入游戏、用户升级、建角。
调用例子
当用户成功完全登录进入游戏后,需要设置用户相关信息并且提交
该函数的所有内容,不能使用SDK客户端本地缓存的数据,建议从服务端获得
需要设置的属性如下,当没有该属性时,请传空字符串
参数值
说明
"0"
进入游戏主场景(即正式登录游戏)
"1"
创建新角色
"2"
角色升级
设置方法示例:
(4)支付函数名
public string PayItem (U3DTypeBaseData _in_pay);
说明
在获取服务器订单号,并在TypeSDK Server服务器提交订单信息后,调用此接口启动渠道的支付界面,进行支付行为
调用例子
其中U3DTypeBaseData中
必填参数为:
当支付行为在客户端完成后,会接到回调消息:EVENT_PAY_RESULT
其中event的使用类似 login
event中data的参数包括以下内容
(5)登出函数名
public void Logout ();
说明
调用渠道的登出逻辑,不会有界面显示,但是会把渠道账户注销,需要由cp自行回到登录界面
调用例子:
登出成功则会发送 TypeEventType.EVENT_LOGOUT消息,发送的参数U3DTypeBaseData数据
(6)退出函数名
public void ExitGame ();
说明
调用渠道退出应用程序逻辑,执行成功,则会关闭应用
整个游戏的退出行为 ,建议交给sdk处理,并且添加 退出行为取消响应事件侦听TypeEventType.EVENT_CANCEL_EXIT_GAME 的函数
当退出成功后 由sdk执行系统的退出,当退出取消后,则会发送 取消退出事件,接入方需完成相应的逻辑。
(7)获取当前渠道SDK配置参数包括以下内容:
以上参数 在CPSeting.txt中填写(接入方无需关心)
(8)用户中心显示渠道用户中心
隐藏用户中心
在调用这2个函数之前 需要先执行IsHasRequest(U3DTypeAttName.SUPPORT_PERSON_CENTER)函数 用以判定 是否需要支持该函数。
当支持时 这2个函数才会起效,并且需要在游戏内,需要有相应的图形入口,
当不支持时,这2个函数不会生效,游戏内页不需要相应的图形入口。
使用示例:
或
(9)查询渠道是否弹出退出框整理了一些关于软考的项目学习资料(附讲解~~),需要自取
https://d.51cto.com/eDOcp1
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
赞 收藏 评论 举报相关文章