更新日期:2026-02-13Unity3D接入文档
请先到"下载中心",下载“QuickSDK For Unity 3D”版本的SDK包。将其中的QuickSDKForUnity.unitypackage文件导入到Unity工程里面(如果无法导入,请再次确认文件是放置于非中文路径下的),如下图所示:
注: 调用QuickSDK.cs类的接口,并实现其回调方法
需要先添加quicksdk的命名空间(using quicksdk;),并通过 QuickSDK.getInstance( ) 方法获取QuickSDK类的实例
1.2.1. 设置监听器(必接)
接口:void setListener(QuickSDKListener quickSDKListener )
案例:调用QuickSDK.getInstance().setListener函数,其参数传入实例化的QuickSDKListener类对象。setListener函数请尽可能早的设置,便于监听回调。
脚本需要实现的回调请参考以下代码:
public class EventHandle : QuickSDKListener {
void Start () {
QuickSDK.getInstance().setListener (this);
}
public override void onInitSuccess(){
//初始化成功的回调
}
public override void onInitFailed(ErrorMsg errMsg){
//初始化失败的回调
}
public override void onLoginSuccess (UserInfo userInfo){
//登录成功的回调
}
public override void onLoginFailed (ErrorMsg errMsg){
//登录失败的回调
//如果游戏没有登录按钮,应在这里再次调用登录接口
}
public override void onSwitchAccountSuccess (UserInfo userInfo){
//切换账号成功的回调
//一些渠道在悬浮框有切换账号的功能,此回调即切换成功后的回调。游戏应清除当前的游戏角色信息。在切换账号成功后回到选择服务器界面,请不要再次调用登录接口。
}
public override void onLogoutSuccess (){
//注销成功的回调
//游戏应该清除当前角色信息,回到登陆界面,并自动调用一次登录接口
}
public override void onPaySuccess (PayResult payResult){
//支付成功的回调
//一些渠道支付成功的通知并不准确,因此客户端的通知仅供参考,游戏发货请以服务端通知为准,不能以客户端的通知为准
}
public override void onPayCancel (PayResult payResult){
//支付取消的回调
}
public override void onPayFailed (PayResult payResult){
//支付失败的回调
}
public override void onExitSuccess (){
//SDK退出成功的回调
//在此处调用QuickSDK.getInstance().exitGame()函数即可实现退出游戏,杀进程。为避免与渠道发生冲突,请不要使用Application.Quit()函数
}
}
1.2.2. 初始化(必接)
接口:void init();
功能:调用渠道SDK的初始化
案例:QuickSDK.getInstance().init();
1.2.3. 登录(必接)
接口:void login();
功能:调用渠道SDK的登录
案例:QuickSDK.getInstance().login();
1.2.4. 上传角色信息(必接)
注:需要在创建角色,进入游戏,角色升级的时候分别调用上传角色信息的接口
1.2.4.1. 创建角色时上传
接口:void createRole(GameRoleInfo gameRoleInfo);
功能:创建角色时向渠道SDK上传角色信息
案例:
GameRoleInfo gameRoleInfo = new GameRoleInfo(); gameRoleInfo.gameRoleBalance = "0"; gameRoleInfo.gameRoleID = "000001"; gameRoleInfo.gameRoleLevel = "1"; gameRoleInfo.gameRoleName = "钱多多"; gameRoleInfo.partyName = "同济会";//设置公会名称 gameRoleInfo.serverID = "1"; gameRoleInfo.serverName = "火星服务器"; gameRoleInfo.vipLevel = "1"; gameRoleInfo.roleCreateTime = "roleCreateTime";//值为10位数时间戳 gameRoleInfo.gameRoleGender = "男"; gameRoleInfo.gameRolePower ="38";//设置角色战力,必须为整型字符串 gameRoleInfo.partyId ="1100";//设置公会id,必须为整型字符串 gameRoleInfo.professionId = "11";//设置角色职业id,必须为整型字符串 gameRoleInfo.profession = "法师";//设置角色职业名称 gameRoleInfo.partyRoleId = "1";//设置角色在公会中的id gameRoleInfo.partyRoleName = "帮主"; //设置角色在公会中的名称 gameRoleInfo.friendlist = "无";//设置好友关系列表,格式请参考:http://open.quicksdk.net/help/detail/aid/190 QuickSDK.getInstance ().createRole(gameRoleInfo);//创建角色
1.2.4.2. 进入游戏时上传
接口:void enterGame(GameRoleInfo gameRoleInfo);
功能:登录完成之后,进入游戏时向渠道SDK上传角色信息
案例:QuickSDK.getInstance().enterGame(gameRoleInfo);
1.2.4.3. 角色升级时上传
接口:void updateRole(GameRoleInfo gameRoleInfo);
功能:角色升级时向渠道SDK上传角色信息
案例:QuickSDK.getInstance().updateRole(gameRoleInfo);
GameRoleInfo
|
字段 |
类型 |
说明 |
|
serverID |
String |
服务器ID(值为数字字符串) |
|
serverName |
String |
服务器名称 |
|
gameRoleName |
String |
角色名称 |
|
gameRoleID |
String |
角色ID |
|
gameRoleBalance |
String |
角色用户余额 |
|
vipLevel |
String |
角色用户余额VIP等级(值为数字字符串) |
|
gameRoleLevel |
String |
角色用户等级(值为数字字符串) |
|
partyName |
String |
公会名称 |
|
roleCreateTime |
String |
角色创建时间(传10位数时间戳,如要使用禁止新角色进入游戏的功能,此值必须传对) |
|
gameRoleGender |
String |
角色性别 |
|
gameRolePower |
String |
战力 |
|
partyId |
String |
公会id |
|
professionId |
String |
角色职业id |
|
profession |
String |
角色职业名称 |
|
partyRoleId |
String |
公会角色id |
|
partyRoleName |
String |
公会角色名 |
|
friendlist |
String |
好友关系列表 |
接入说明:
1) 在创建游戏角色、进入游戏和角色升级时候需要上传角色信息;
2)GameRoleInfo所有字段均需上传,不能传null,游戏没有的字段可以传一个默认值(比如 default 或者 1 之类的)
3) 关于360渠道上传角色信息的具体说明,请参考:http://open.quicksdk.net/help/detail/aid/190
1.2.5. 定额支付(必接)
接口:void pay(OrderInfo orderInfo, GameRoleInfo gameRoleInfo);
功能:调用渠道SDK的支付接口
案例:
OrderInfo orderInfo = new OrderInfo(); GameRoleInfo gameRoleInfo = new GameRoleInfo(); orderInfo.goodsID = "1"; orderInfo.goodsName = "勾玉"; orderInfo.goodsDesc = "10个勾玉"; orderInfo.quantifier = "个"; orderInfo.extrasParams = "extparma"; orderInfo.count = 10; orderInfo.amount = 1; orderInfo.price = 0.1f; orderInfo.callbackUrl = ""; orderInfo.cpOrderID = "cporderidzzw"; gameRoleInfo.gameRoleBalance = "0"; gameRoleInfo.gameRoleID = "11111"; gameRoleInfo.gameRoleLevel = "1"; gameRoleInfo.gameRoleName = "钱多多"; gameRoleInfo.partyName = "同济会"; gameRoleInfo.serverID = "1"; gameRoleInfo.serverName = "火星服务器"; gameRoleInfo.vipLevel = "1"; gameRoleInfo.roleCreateTime = "roleCreateTime"; QuickSDK.getInstance ().pay (orderInfo, gameRoleInfo);
OrderInfo
| 字段 | 类型 | 说明 |
|
goodsID |
String |
产品ID,用来识别购买的产品 |
|
goodsName |
String |
产品名称 |
|
amount |
float |
支付总额(元) |
|
count |
int |
购买数量 |
|
cpOrderID |
String |
产品订单号(游戏方的订单号) |
|
extrasParams |
String |
透传参数 服务器发送异步通知时原样回传(需要传纯字符串,不能传json格式) |
|
price |
float |
价格(可跟amount传一样的值) |
|
quantifier |
String |
购买商品单位,如:个 |
|
goodsDesc |
String |
商品描述 |
|
callbackUrl
|
String
|
游戏支付回调地址,如后台也有配置,则优先通知后台设置的地址
|
接入要求:为了兼容各个渠道商品名称能够统一显示,订单应以如下案例的形式传值:
案例1: 案例2:
amount:6.0 amount:10.0