Appearance
CocosCreator接入
WARNING
在接入SDK之前, 建议先请仔细阅读:接入流程
SDK提供了Cocos的Demo,里面对Android/iOS层的逻辑进行了简单的封装,故本文档仅供参考,游戏层也可以自行处理调用逻辑
准备工作
Cocos层的调用接口,都封装在了UGSDK.ts中:
将UGSDKDemo/assets/Script/UGSDK.ts 文件拷贝到游戏工程assets/Script/目录下
接口调用之前,需要在接入文件中引入UGSDK组件:
ts
import ugsdkApi, {UGAdEvent, UGLoginResult, UGOrderData, UGRoleData, UGProduct} from './UGSDK';设置回调
在调用接口之前, 需要先设置回调,可以参考如下代码进行设置:
点击查看回调设置代码
ts
// 设置初始化成功回调
ugsdkApi.setInitSucCallback(()=> {
console.log('sdk init success.')
});
// 设置初始化失败回调
ugsdkApi.setInitFailedCallback((msg:string)=> {
console.log('sdk init failed.')
});
// 设置登录成功回调
ugsdkApi.setLoginSucCallback((loginResult:UGLoginResult)=> {
console.log('sdk login success.', loginResult)
});
// 设置登录失败回调
ugsdkApi.setLoginFailedCallback((msg:string)=> {
console.log('sdk login failed.')
});
// 设置游客账号升级成功回调
ugsdkApi.setVisitorUpgradeSucCallback((loginResult:UGLoginResult)=> {
console.log('sdk bind success.', loginResult)
});
// 登出回调
ugsdkApi.setLogoutCallback(()=>{
// 收到该回调,引导玩家返回游戏登录界面重新进入游戏
});
// 设置支付成功回调
ugsdkApi.setPaySucCallback(()=> {
console.log('sdk pay success.')
});
// 设置支付失败回调
ugsdkApi.setPayFailedCallback((msg:string)=> {
console.log('sdk pay failed.')
});
// 设置查询商品成功回调
ugsdkApi.setFetchProductsSucCallback((products:UGProduct[])=> {
console.log('sdk fetch products success.')
});
// 设置查询商品失败回调
ugsdkApi.setFetchProductsFailedCallback((msg:string)=> {
console.log('sdk fetch products failed.')
});对于登录和游客账号升级回调中的UGLoginResult对象说明:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| uid | String | 用户唯一ID |
| name | String | 用户名, 邮箱/设备号/第三方平台用户唯一ID |
| loginName | String | 登录用户名 |
| accountType | String | 1:游客;2:邮箱;3:Google;4:Facebook;5:Apple;6:Twitter;7:Line |
| newAccount | String | 1:新注册用户;0:活跃用户 |
| token | String | 传给游戏服务器,去SDK服务端验证 |
接口调用
1、 初始化
我们需要在游戏启动的时候(比如在组件的Start函数)调用初始化接口。如下:
ts
//初始化SDK
ugsdkApi.initSDK();2、 登录
在玩家进入游戏之前, 需要调用登录接口,弹出SDK的登陆界面:
ts
ugsdkApi.login();登录成功会触发onLoginSuc回调,登录失败会触发onLoginFailed回调。
3、 登出
如果游戏内有登出按钮, 当玩家点击登出按钮的时候, 调用登出接口后(不用等待回调结果),立即返回到游戏登陆界面(不用等待回调结果)
ts
ugsdkApi.logout();调用logout接口或者玩家从用户中心悬浮窗中点击了切换账号后,会触发onLogout回调。
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);高级接口调用
1、游客静默登录
如果要使用游客静默登录,可以调用下面接口:
ts
ugsdkApi.loginWithVisitor();2、绑定账号
使用游客静默登录后,可以在合适时机,调用下面接口,引导玩家升级到正式账号:
ts
ugsdkApi.bindAccount();3、打开用户中心
默认SDK登录后会展示一个悬浮球,点击后打开用户中心。 如果后台关闭悬浮球,游戏层也可以调用下面接口主动打开:
ts
ugsdkApi.showAccountCenter();4、删除账号
默认用户中心中也会展示账号删除入口, 如果不开启用户中心, 游戏中也加账号删除入口,然后调用如下接口:
ts
ugsdkApi.deleteAccount();5、查询商品本地价格
如果游戏层需要查询商品的本地价格,可以调用如下接口(Google/AppStore支持):
ts
ugsdkApi.fetchProducts();6、设置SDK语言
默认SDK当前展示的语言和系统设置中当前设置的首语言一致, 如果游戏层需要主动切换SDK当前展示的语言,可以调用如下API:
ts
ugsdkApi.updateLocale("vi");语言支持说明:
| 语言码 | 语言 | 说明 |
|---|---|---|
| en | 英文 | values |
| zh-CN | 中文简体 | values-zh-rCN |
| zh-HK | 中文粤语 | values-zh-rHK |
| zh-TW | 中文繁体 | values-zh-rTW |
| vi | 越南文 | values-vi |
| th | 泰文 | values-th |
| ko | 韩文 | values-ko |
| ja | 日文 | values-ja |
7、自定义事件上报
WARNING
SDK内部默认已经在初始化、注册、登录、创建角色、 进入游戏、 角色等级升级、 支付几个时机做了自动上报,游戏层不用在这些时机再次上报了。
ts
let eventParams = {"key1":"val1"};
ugsdkApi.uploadEvent("eventName", eventParams);eventName在定义时请注意, 如下事件名称为SDK内置名称,:
| 上报时机 | 事件名称 | 事件说明 |
|---|---|---|
| SDK初始化开始 | ug_sdk_init_begin | 在SDK初始化接口开始调用时触发 |
| SDK初始化成功 | ug_sdk_init_success | 在SDK初始化接口成功后触发 |
| SDK登录开始 | ug_sdk_login_begin | 在SDK登录接口开始调用时触发 |
| SDK登录成功 | ug_sdk_login_suc | 在SDK登录成功后触发 |
| SDK账号注册成功 | ug_sdk_register_suc | 在玩家首次登录/注册成功时触发 |
| SDK支付开始 | ug_sdk_pay_begin | 在SDK支付接口开始调用时触发 |
| SDK支付成功 | ug_sdk_pay_suc | 在SDK支付成功后触发 |
| 创建角色成功 | ug_sdk_role_create | 在游戏层调用角色上报接口并且type是1时触发 |
| 进入游戏成功 | ug_sdk_game_enter | 在游戏层调用角色上报接口并且type是2时触发 |
| 角色升级成功 | ug_sdk_level_up | 在游戏层调用角色上报接口并且type是3时触发 |
注意:底层上报依赖第三方数据SDK插件, 关于插件如何开启和配置, 请参考: Android插件配置 和 iOS插件配置 。