Appearance
Unity接入
WARNING
在接入SDK之前, 建议先请仔细阅读:接入流程
SDK提供了Unity的Demo,里面对Android/iOS层的逻辑进行了简单的封装,故本文档仅供参考,游戏层也可以自行处理调用逻辑
基础配置
1、将UnityDemo/Assets/Scripts/SDK目录拷贝到游戏工程的Assets/Scripts目录下, 如果游戏层已经存在SDK目录,可以重新创建一个目录,将上述目录中的代码拷贝进去;SDK目录下是封装好的Unity层的API调用组件。
2、 将UnityDemo/Assets/Plugins/文件拷贝到游戏工程的Assets/Plugins/下。Plugins/Android目录下,是Android平台相关的SDK库和配置文件;Plugins/iOS目录下,是iOS平台相关的SDK库和配置文件。
基础接口调用
1、初始化
csharp
UGSDKInterface.Instance.Init();
// 设置登录成功回调:
UGSDKInterface.Instance.OnLoginSuc = delegate(UGLoginResult result)
{
// SDK登录成功回调, result为SDK登录结果
// result.userID: 用户在SDK中的唯一用户ID
// result.username: 用户名
// result.token: 登陆token,需要和userID一起发给服务端,服务端去SDK服务器做登录验证,具体协议参考服务端文档
// result.newAccount: 1:新用户;0:老用户
};
// 设置游客账号绑定成功回调:
UGSDKInterface.Instance.OnVisitorUpgradeSuc = delegate(UGLoginResult result)
{
// SDK登录成功回调, result为SDK登录结果
// result.userID: 用户在SDK中的唯一用户ID
// result.username: 用户名
// result.token: 登陆token,需要和userID一起发给服务端,服务端去SDK服务器做登录验证,具体协议参考服务端文档
// result.newAccount: 1:新用户;0:老用户
};
// 设置登出成功回调:
UGSDKInterface.Instance.OnLogout = delegate()
{
// 当玩家从SDK中登出时,会触发该回调。 游戏层需要引导玩家返回到游戏登录界面重新登录进入游戏
};
// 设置支付成功回调:
UGSDKInterface.Instance.OnPaySuc = delegate()
{
};
// 设置商品查询结果回调
UGSDKInterface.Instance.OnProductFetchSuc = delegate(List<UGProduct> products)
{
OnProductFetchResult(products);
};2、登录
在玩家进入游戏之前, 需要调用登录接口,弹出SDK的登陆界面:
csharp
UGSDKInterface.Instance.Login();3、登出
如果游戏内有登出按钮, 当玩家点击登出按钮的时候, 调用登出接口后(不用等待回调结果),立即返回到游戏登陆界面(不用等待回调结果)
csharp
UGSDKInterface.Instance.Logout();4、角色数据上报
csharp
UGRoleData data = new UGRoleData();
data.roleID = "1"; //玩家角色ID
data.roleName = "测试角色"; //玩家角色名称
data.roleLevel = "15"; // 玩家角色等级
data.serverID = "10"; // 当前服务器ID
data.serverName = "地狱之恋"; // 当前
data.vip = "1"; // 当前角色VIP等级
data.createTime = "0"; // 角色创建时间,从1970年到现在的时间,单位秒
data.lastLevelUpTime = "0"; // 角色等级变化时间,从1970年到现在的时间,单位秒
data.type = UGRoleData.TYPE_CREATE_ROLE; //上报类型. 1: 创建角色;2:进入游戏;3:等级提升;4:退出游戏
UGSDKInterface.Instance.SubmitGameData(data);5、支付
csharp
UGPayParams data = new UGPayParams();
data.productID = "1"; //游戏内商品ID,可以和google后台的商品ID不一致。 在SDK后台配置商品ID的映射关系即可
data.productName = "元宝"; //商品名称
data.productDesc = "购买100元宝,赠送20元宝"; //商品描述
data.price = 100; //商品价格,单位分
data.currency = "CNY"; //货币单位,默认USD
data.serverID = "10"; //服务器ID
data.serverName = "地狱之恋"; //服务器名称
data.roleID = "1"; //角色ID
data.roleName = "测试角色"; //角色名称
data.roleLevel = "15"; //角色等级
data.vip = "1"; // vip
data.payNotifyUrl = "http://localhost:8080/payCallback"; //游戏服的支付回调地址,用于接收支付回调通知
data.cpOrderID = "test_00000001"; //游戏自己的订单号
data.extra = "test_data"; //扩展数据, 支付成功回调通知游戏服务器的时候,会原封不动返回这个值
UGSDKInterface.Instance.Pay(data);高级接口调用
1、游客静默登录
如果要使用游客静默登录,可以调用下面接口:
csharp
UGSDKInterface.Instance.LoginWithVisitor();2、绑定账号
使用游客静默登录后,可以在合适时机,调用下面接口,引导玩家升级到正式账号:
csharp
UGSDKInterface.Instance.BindAccount();3、打开用户中心
默认SDK登录后会展示一个悬浮球,点击后打开用户中心。 如果后台关闭悬浮球,游戏层也可以调用下面接口主动打开:
csharp
UGSDKInterface.Instance.ShowAccountCenter();4、删除账号
默认用户中心中也会展示账号删除入口, 如果不开启用户中心, 游戏中也加账号删除入口,然后调用如下接口:
csharp
UGSDKInterface.Instance.DeleteAccount();5、查询商品本地价格
如果游戏层需要查询商品的本地价格,可以调用如下接口(Google/AppStore支持):
csharp
UGSDKInterface.Instance.FetchProducts();6、设置SDK语言
默认SDK当前展示的语言和系统设置中当前设置的首语言一致, 如果游戏层需要主动切换SDK当前展示的语言,可以调用如下API:
csharp
UGSDKInterface.Instance.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内部默认已经在初始化、注册、登录、创建角色、 进入游戏、 角色等级升级、 支付几个时机做了自动上报,游戏层不用在这些时机再次上报了。
csharp
Dictionary<string, object> map = new Dictionary<string, object>();
map.Add("param1", "1");
map.Add("param2", "2");
UGSDKInterface.Instance.UploadEvent("eventName", map);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插件配置 。