上一篇,我们着重讲解了用Unity开发的手游,在接入U8SDK时,Android中的部分。接下来,这一篇,我们就来看看,在Unity工程中,我们需要怎么调用上一篇中我们提供的各种接口,以及怎么接收Android中的消息通知,比如登录成功,切换帐号成功等。
在写代码之前,我们先要做一个简单的配置,在Project面板中,按照Unity官方的要求,新建一个Plugins文件夹,在Plugins文件夹下,再建立一个Android文件夹。这里,将会放置所有Android工程相关的文件。
1、将上一篇中,我们创建的工程中,将res目录拷贝到该文件夹下
2、新建一个bin目录,将Android工程中bin目录下生成的jar拷贝到这里
3、新建一个libs目录,将android-support-v*.jar拷贝到这里(注意,之前引入的unity的那个jar不要拷贝过来)
4、将U8SDK2抽象层工程中的bin目录下生成的u8sdk2.jar拷贝到libs目录中
5、将AndroidManifest.xml拷贝到Android目录下
完整的结构如下:
这样,整个配置工作就完成了。接下来,我们就来看看,在Unity中怎么来完成Android中相关接口的调用以及封装。
渠道SDK接入,包括Android,IOS,WP等多种平台,这里我们需要抽象出来一个统一的上层接口,供给游戏逻辑层调用,所以我们定义一个U8SDKInterface的抽象单例类:
public abstract class U8SDKInterface{
public delegate void LoginSucHandler(U8LoginResult data);
public delegate void LogoutHandler();
private static U8SDKInterface _instance;
public LoginSucHandler OnLoginSuc;
public LogoutHandler OnLogout;
public static U8SDKInterface Instance
{
get
{
if (_instance == null)
{
#if UNITY_EDITOR || UNITY_STANDLONE
_instance = new SDKInterfaceDefault();
#elif UNITY_ANDROID
_instance = new SDKInterfaceAndroid();
#elif UNITY_IOS
_instance = new SDKInterfaceIOS();
#endif
}
return _instance;
}
}
//初始化
public abstract void Init();
//登录
public abstract void Login();
//自定义登录,用于腾讯应用宝,QQ登录,customData="QQ";微信登录,customData="WX"
public abstract void LoginCustom(string customData);
//切换帐号
public abstract void SwitchLogin();
//登出
public abstract bool Logout();
//显示个人中心
public abstract bool ShowAccountCenter();
//上传游戏数据
public abstract void SubmitGameData(U8ExtraGameData data);
//调用SDK的退出确认框,返回false,说明SDK不支持退出确认框,游戏需要使用自己的退出确认框
public abstract bool SDKExit();
//调用SDK支