Appearance
CocosCreator接入
WARNING
在接入SDK之前, 建议先请仔细阅读:接入流程
SDK提供了Cocos的Demo,里面对Android/iOS层的逻辑进行了简单的封装,故本文档仅供参考,游戏层也可以自行处理调用逻辑
准备工作
Cocos层的调用接口,都封装在了UGSDK.ts中:
将CocosDemo/CocosCreator/assets/Script/UGSDK.ts 文件拷贝到游戏工程assets/Script/目录下
接口调用之前,需要在接入文件中引入UGSDK组件:
ts
import ugsdkApi, {UGLoginResult, UGOrderData, UGRoleData} from './UGSDK';
接口调用
1、 初始化
我们需要在游戏启动的时候(比如在组件的Start函数)调用初始化接口。如下:
ts
//初始化SDK
ugsdkApi.initSDK();
// 设置登录成功回调
ugsdkApi.setLoginCallback((result:UGLoginResult)=> {
this.label.string = '已登录:'+ result.name;
});
// 设置登出回调
ugsdkApi.setLogoutCallback(()=> {
// 收到该回调, 说明玩家从SDK中登出了。 游戏需要引导玩法返回到游戏登录界面,并重新拉起登录接口,让玩家重新进入游戏
});
关于UGLoginResult对象:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
uid | String | 用户唯一ID |
name | String | 用户名, 普通用户名/手机号/设备号/第三方平台用户唯一ID(微信登录后这里对应的是unionId) |
loginName | String | 登录用户名 |
wxOpenID | String | 微信账号的open id, 只有当accountType为4的时候,才可能会有 |
accountType | String | 1:普通用户登录;2:手机号;3:设备号静默登录;4:微信;5:苹果;6:TapTap;7:抖音 |
newAccount | String | 1:新注册用户;0:活跃用户 |
token | String | 传给游戏服务器,去SDK服务端验证 |
2、 登录
在玩家进入游戏之前, 需要调用登录接口,弹出SDK的登陆界面:
ts
ugsdkApi.login();
3、 登出
如果游戏内有登出按钮, 当玩家点击登出按钮的时候, 调用登出接口后(不用等待回调结果),立即返回到游戏登陆界面(不用等待回调结果)
ts
ugsdkApi.logout();
4、 角色数据上报
ts
let data = new UGRoleData();
data.type = "2"; //以下四个地方都需要调用该接口。 每个地方对应的dataType不同。 dataType: 1:创建角色;2:进入游戏;3:等级升级;4:退出游戏
data.roleID = "1"; //角色ID
data.roleName = "u8demo"; //角色名称
data.roleLevel = "1"; //角色等级
data.serverID = "1"; //服务器id
data.serverName = "刺激战场"; //服务器名称
data.createTime = "1000035434"; //角色创建时间戳(秒)
data.lastLevelUpTime = "0"; //角色升级时间戳(秒)
ugsdkApi.submitGameData(data);
5、 支付
ts
let payData = new UGOrderData();
payData.productID = "1"; //商品ID
payData.productName = "100元宝"; //商品名称
payData.productDesc = "购买100元宝,送20"; //商品描述
payData.price = "100"; //商品金额(分)
payData.serverID = "1"; //服务器ID
payData.serverName = "刺激战场"; //服务器名称
payData.roleID = "1"; //角色ID
payData.roleName = "u8demo"; //角色名称
payData.roleLevel = "1"; //角色等级
payData.payNotifyUrl = ""; //服务端接收支付成功后的回调通知接口URL地址
payData.vip = "10"; //角色VIP等级
payData.cpOrderID = ""; //游戏自己的订单号
payData.extra = "ex"; //服务端回调时,原样返回给研发
ugsdkApi.pay(payData);