U8SDK技术博客:http://www.uustory.com/,欢迎来坐坐。
百度传课已经停运,最新U8SDK视频教程已经转移至B站:U8SDK最新视频教程
U8SDK的设计之初,就是为了能够支持各种游戏引擎开发的游戏,而不仅仅是Android的原生平台。目前一大半的手游,都是采用Unity3D和Cocos2dx开发,那么这里,我们就先来一步步给大家演示,用Unity开发的游戏,如何通过U8SDK来快速地完成多家渠道SDK的接入。
Unity研发的手游,只需要调用U8SDK抽象层即可完成多家渠道SDK的接入,而不需要在Unity中耦合各个渠道SDK,保证游戏层逻辑层的简单,以及SDK部分的绝对重用。
下面,我们看看,在Unity中调用U8SDK主要需要完成的工作:
1、建立一个Android工程,作为U8SDK和Unity平台通信的中间协调工程
2、定义一致的通信数据类型,我们这里采用JSON格式
3、在Unity中,通过C#完成一套统一的SDK调用接口,给逻辑层调用。同时多个平台(Android,IOS,PC等)的接口完全相同。
这一篇,我们就先来完成第一步和第二步。
1,新建一个Android工程,将IsLibrary设置为true,将该工程作为库工程,这样当你编译的时候,会在bin目录下产生一个jar包,而不是一个apk
2,设置依赖工程为U8SDK2抽象层工程,同时将Unity3D提供的Android的jar包,复制到该工程的libs目录下
3、然后建立两个类,一个为U8UnityContext ,这个类继承UnityPlayerActivity ,也是游戏的启动Activity。
4、另一个是IU8SDKListener 的实现类,主要实现一些SDK的回调方法
我们先来看看这两个类的实现,之后再来解释一些关键的东西:
public class U8UnityContext extends UnityPlayerActivity{
public final static String CALLBACK_GAMEOBJECT_NAME = "(u8sdk_callback)"; //unity中接收回调通知的GameObject的名称
public final static String CALLBACK_INIT = "OnInitSuc"; //SDK初始化成功的回调方法名称和Unity中一致
public final static String CALLBACK_LOGIN = "OnLoginSuc"; //SDK登录成功的回调方法名称和Unity中一致
public final static String CALLBACK_SWITCH_LOGIN = "OnSwitchLogin"; //SDK切换帐号的回调方法名称和Unity中一致
public final static String CALLBACK_LOGOUT = "OnLogout"; //SDK登出的回调方法名称和Unity中一致
public final static String CALLBACK_PAY = "OnPaySuc"; //SDK支付成功回调方法名称和Unity中一致
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initSDK();
}
//U8SDK 初始化
public void initSDK(){
U8SDK.getInstance().setSDKListener(new UnityU8SDKListener(this));
U8SDK.getInstance().init(this);
U8SDK.getInstance().onCreate();
}
//登录接口
public void login(){
U8SDK.getInstance().runOnMainThread(new Runnable() {
@Override
public void run() {
U8User.getInstance().login();
}
});
}
//自定义登录接口
public void loginCustom(final String customData){
U8SDK.getInstance().runOnMainThread(new Runnable() {
@Override
public void