标签:sdk接入教程 sdk接入 sdk教程 unity3d sdk 游戏开发
题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你之前被坑过,而且还在继续被坑着,那么现在,就是你解脱的时刻。
上一篇文章我们说了整个U8 SDK抽象成的设计,那这篇文章,我们就来验证一下,他是否如我们期待的那样,简单灵活。
正如之前所说,对于每个游戏,只需要接入抽象层,而每个渠道SDK的接入,就是该抽象层的一个实现而已。最后通过一键打包工具来完成最后的产出。那么,我们先来看看,游戏怎么来调用这个抽象层。
我们假设我们已经开发了一款游戏,面临上线,需要接入SDK,需要接入UC,当乐,91,360,小米等渠道。因为采用U8 SDK统一接入框架的思想,游戏工程本身不耦合具体的每个渠道SDK,而只是调用U8 SDK抽象层。那么,根据上一篇文章谈到的抽象层,我们就来看看如何调用。
首先,我们用eclipse新建一个android工程,作为我们这个模拟的游戏工程。这里需要说一下,如果你不是直接使用Android开发的游戏,而是采用像Unity3D,Cocos2D等游戏引擎,其接入也是一样的。只是多了一层JNI调用。我们新建一个主运行的Activity:
package com.u8.sdk.demo;
import com.u8.sdk.IU8SDKListener;
import com.u8.sdk.LoginResult;
import com.u8.sdk.PayParams;
import com.u8.sdk.U8SDK;
import com.u8.sdk.components.U8Pay;
import com.u8.sdk.components.U8User;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
U8SDK.getInstance().setSDKListener(new IU8SDKListener() {
@SuppressLint("ShowToast")
@Override
public void onResult(int arg0, String msg) {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT);
}
@SuppressLint("ShowToast")
@Override
public void onLoginResult(LoginResult loginResult) {
Toast.makeText(MainActivity.this, "登录成功,sid:"+loginResult.getSid(), Toast.LENGTH_SHORT);
}
});
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pay();
}
});
Button btnLogin = (Button)findViewById(R.id.button2);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login();
}
});
U8SDK.getInstance().init(MainActivity.this);
}
private void login(){
U8SDK.getInstance().runOnMainThread(new Runnable() {
@Override
public void run() {
U8User.getInstance().login();
}
});
}
private void pay(){
U8SDK.getInstance().runOnMainThread(new Runnable() {
@Override
public void run() {
PayParams params = new PayParams();
params.setPrice(100);
params.setServerId("1");
params.setRoleId("1");
U8Pay.getInstance().pay(params);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
U8SDK.getInstance().onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
public void onPause(){
U8SDK.getInstance().onPause();
super.onPause();
}
public void onResume(){
U8SDK.getInstance().onResume();
super.onResume();
}
public void onNewIntent(Intent newIntent){
U8SDK.getInstance().onNewIntent(newIntent);
super.onNewIntent(newIntent);
}
public void onStop(){
U8SDK.getInstance().onStop();
super.onStop();
}
public void onDestroy(){
U8SDK.getInstance().onDestroy();
super.onDestroy();
}
public void onRestart(){
U8SDK.getInstance().onRestart();
super.onRestart();
}
public void onBackPressed(){
U8SDK.getInstance().onBackPressed();
super.onBackPressed();
}
}
U8SDK.getInstance().init(MainActivity.this);
U8SDK.getInstance().setSDKListener(new IU8SDKListener() {
@SuppressLint("ShowToast")
@Override
public void onResult(int arg0, String msg) {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT);
}
@SuppressLint("ShowToast")
@Override
public void onLoginResult(LoginResult loginResult) {
Toast.makeText(MainActivity.this, "登录成功,sid:"+loginResult.getSid(), Toast.LENGTH_SHORT);
}
});
这样,初始化就完毕了。然后,就是在需要调用登陆界面的地方,调用:
U8User.getInstance().login();
U8Pay.getInstance().pay(params);
U8SDK.getInstance().runOnMainThread(new Runnable() {
@Override
public void run() {
U8User.getInstance().login();
}
});
public void onPause(){
U8SDK.getInstance().onPause();
super.onPause();
}
标签:sdk接入教程 sdk接入 sdk教程 unity3d sdk 游戏开发
原文地址:http://blog.csdn.net/chenjie19891104/article/details/42430197