Skip to content

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对象说明:

参数名称参数类型参数说明
uidString用户唯一ID
nameString用户名, 邮箱/设备号/第三方平台用户唯一ID
loginNameString登录用户名
accountTypeString1:游客;2:邮箱;3:Google;4:Facebook;5:Apple;6:Twitter;7:Line
newAccountString1:新注册用户;0:活跃用户
tokenString传给游戏服务器,去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插件配置

版权所有© 2021-2030 上海丞诺网络科技有限公司