接入前,请确保已下载最新版本SuperSDK4.0+Demo(Unity版)。
Unity工程导入package时,路径上不能含中文字符。
SuperSDK For Unity内部依赖于LitJson库,若游戏本身已经引入,则无需引入。
在需要接收回调的场景(Scene)里,添加该Perfabe或设置该Perfabe在场景切换时不被销毁,否则接收不到回调事件。
注意:游戏也可以将SuperSDK_BindCallBack.cs脚本挂载到自己永不销毁的gameObject上。
添加 android:name=“com.supersdk.openapi.SuperSdkApplication” 至application节点,并在application节点下添加相应配置:
<application
android:allowBackup="true"
android:label="SuperSDKDemo"
# 添加下面这个值即可
android:name="com.supersdk.openapi.SuperSdkApplication" >
# 添加相应配置
<meta-data
android:name="sp_version"
android:value="4.0.6" >
</meta-data>
<activity
android:name="com.supersdk.demo.platform.sdk.PluginLoginActivity"
android:screenOrientation="sensor"
android:theme="@android:style/Theme.Dialog" />
</application >
添加相应的权限:
<!-- 统计所需权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
import com.yz.unity.YzSDK;
import com.supersdk.openapi.SuperSDK;
在项目的info.plist文件里,增加一项用于标识SuperSDK版本号的值, key为sp_version,对应的value值为当前接入SuperSdk.framework的版本。
SuperSDK.framework的版本号请查看下载的资源包中的README.txt。
在Xcode -> Target -> Build Phrases ->Link Binary WithLibraries中添加以下依赖库:
Foundation.framework
UIKit.framework
AdSupport.framework
SystemConfiguration.framework
CoreTelephony.framework
libstdc++.6.tbd
libsqlite3.tbd
(注:将AdSupport.framework的status改为optional)
在工程配置里面,找到Linking部分,修改Other Linker Flags,添加-ObjC。
#import "SuperSdkWrapper.h"//接口
##添加母包配置文件##
从打包工具下载母包配置,并添加(替换)到assets目录下,如下图所示
接口描述:调用此接口会初始化SuperSDK各模块,iOS和Android端调用,初始化结果会返回到Unity端注册的回调事件。
Android初始化接口,必须在onCreate里面同步调用,否则会影响部分渠道的登录、支付功能。
iOS初始化接口,必须在didFinishLaunchingWithOptions里面调用。
初始化接口做了特殊处理,如果初始化结束时,Unity端回调还未注册,Android和iOS端会等待回调注册完毕再回调,游戏无需担心。
接口调用:
//Unity端初始化接口,在游戏永不销毁的预设体start生命周期调用
SuperSDK.getInstance().Init(this.gameObject.name,new SuperSDK_CallBack()); //SuperSDK_CallBack类需实现ICallBackManager接口
//Android 初始化接口,放在java端调用,必须在onCreate里面同步调用
YzSDK.init(this)
//iOS 初始化接口,放在iOS端调用,必须在didFinishLaunchingWithOptions里面调用
[SuperSdkWrapper init];
/// <summary>
/// 基础CallBack接口
/// </summary>
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
// 平台模块回调
if (moduleName.Equals(SuperSDKPlatform.MODULE_NAME))
{
if(funcName.Equals(SuperSDKPlatform.FUNC_INIT))
{
if ((int)resultData["code"] == SuperSDKConstants.SUCCESS)
{
//初始化成功
}
else
{
//初始化失败,必须重启游戏
}
}
}
}
回调日志打印:
moduleName:platform
funcName:init
result:
{
"code":1,
"msg":"没有更新接口"
}
接口描述:生命周期接口务必在游戏主activity的对应方法中同步调用
@Override
protected void onStart() {
super.onStart();
SuperSDK.lifecycle.onStart();
}
protected void onResume() {
super.onResume();
SuperSDK.lifecycle.onResume();
};
@Override
protected void onPause() {
super.onPause();
SuperSDK.lifecycle.onPause();
}
@Override
protected void onStop() {
super.onStop();
SuperSDK.lifecycle.onStop();
}
@Override
protected void onRestart() {
super.onRestart();
SuperSDK.lifecycle.onRestart();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
SuperSDK.lifecycle.onNewIntent(intent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
SuperSDK.lifecycle.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
SuperSDK.lifecycle.onSaveInstanceState(outState);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
SuperSDK.lifecycle.onConfigurationChanged(newConfig);
}
@Override
protected void onDestroy() {
super.onDestroy();
SuperSDK.lifecycle.onDestroy();
}
如下表所示:
字符串常量 | 实际字符串 | 描述 |
---|---|---|
平台模块常量 | ||
SuperSDKPlatform.MODULE_NAME | platform | 模块名称,每个模块常量名固定 |
SuperSDKPlatform.FUNC_SHOW_LOGO | showLog | 是否显示闪屏 |
SuperSDKPlatform.FUNC_INIT | init | 初始化 |
SuperSDKPlatform.FUNC_LOGIN | login | 登录 |
SuperSDKPlatform.FUNC_HAS_LOGOUT | hasLogout | 渠道是否有注销接口 |
SuperSDKPlatform.FUNC_LOGOUT | logout | 注销 |
SuperSDKPlatform.FUNC_PAY | pay | 支付 |
SuperSDKPlatform.FUNC_PAY_ORDER_ID | payOrderId | 支付获取订单成功 |
SuperSDKPlatform.FUNC_EXIT | exit | 退出游戏 |
SuperSDKPlatform.FUNC_ENTER_GAME | enterGame | 进入游戏 |
SuperSDKPlatform.FUNC_CREATE_ROLE | createRole | 创建角色 |
SuperSDKPlatform.FUNC_LEVEL_UP | levelUp | 角色升级 |
SuperSDKPlatform.FUNC_HAS_FORUM | hasForum | 判断是否有论坛 |
SuperSDKPlatform.FUNC_OPEN_FORUM | openForum | 打开论坛 |
SuperSDKPlatform.FUNC_HAS_USER_CENTER | hasUserCenter | 判断是否有用户中心 |
SuperSDKPlatform.FUNC_OPEN_USER_CENTER | openUserCenter | 打开用户中心 |
SuperSDKPlatform.FUNC_HAS_CUSOMER_SERVICE | hasCustomerService | 判断是否有客服 |
SuperSDKPlatform.FUNC_OPEN_CUSOMER_SERVICE | openCustomerService | 打开客服 |
SuperSDKPlatform.FUNC_OPEN_LOGIN_PAGE | openLoginPage | 进入登录页面 |
SuperSDKPlatform.FUNC_OPEN_HOME_PAGE | openHomePage | 进入游戏首页 |
SuperSDKPlatform.FUNC_HAS_GUEST | hasGuest | 用户是否为游客 |
SuperSDKPlatform.FUNC_GUEST_UPGRADE | guestUpgrade | 游客升级 |
SuperSDKPlatform.FUNC_OTHER_FUNCTION | otherFunction | 扩展接口other |
统计模块常量 | ||
SuperSDKStats.MODULE_NAME | stats | 模块名称 |
SuperSDKStats.FUNC_REPORT | report | 统计上报 |
工具模块常量 | ||
SuperSDKTools.MODULE_NAME | tools | 模块名称 |
SuperSDKTools.FUNC_GET_IPINFO | getClientIPInfo | 获取客户端IP信息,如ip地区 |
SuperSDKTools.FUNC_GET_LANGUAGE | getLanguage | 获取本地系统语言 |
SuperSDKTools.FUNC_GET_COUNTRY | getCountry | 获取本地国家地区 |
SuperSDKTools.FUNC_COPY_TOCLIPBOARD | copyToClipboard | 复制文字到剪切板 |
SuperSDKTools.FUNC_ALERT | alert | 弹窗 |
SuperSDKTools.FUNC_GET_PACKAGE_NAME | getPackageName | 获取应用包名 |
SuperSDKTools.FUNC_GET_VERSION_NAME | getVersionName | 获取AndroidManifest下versionName |
SuperSDKTools.FUNC_GET_VERSION_CODE | getVersionCode | 获取AndroidManifest下versionCode |
SuperSDKTools.FUNC_GET_META_DATA | getMetaData | 获取AndroidManifest下meta-data的value值 |
SuperSDKTools.FUNC_SET_SCREEN_LIGHT | setScreenLight | 调节屏幕亮度 |
SuperSDKTools.FUNC_SAVE_DATA | saveData | 保存数据 |
SuperSDKTools.FUNC_GET_DATA | getData | 获取保存的数据 |
SuperSDKTools.FUNC_GET_DEVICE_ID | getDeviceId | 获取设备ID |
配置模块常量 | ||
SuperSDKConfig.MODULE_NAME | config | 模块名称 |
SuperSDKConfig.FUNC_GET_VALUE | getValue | 获取配置信息 |
广告模块常量 | ||
SuperSDKAdVert.MODULE_NAME | advert | 模块名称 |
SuperSDKAdVert.FUNC_TRACK | track | 激活广告 |
游族模块常量 | ||
SuperSDKForYZ.MODULE_NAME | youzu | 模块名称 |
SuperSDKForYZ.FUNC_GET_VALUE | getValue | 获取配置,包括opId、opGameId |