Unity接入Android SDK

环境

SDK初始化

在MgAndroidSdkProcessorScript.cs脚本的构造函数中,会调用InitBegin()进行mgsdk初始化并开启遮罩。 初始化结果返回后会调用onInitSdkResult方法

void onInitSdkResult (String message)
{
//message是以逗号分隔”success,xxx,yyy,zzz”
       string param = "";//附加参数
      string result = parseMessage(message, out param); //解析android端消息
      if (result == "success")//成功返回success,否则就失败
      {
          isInit = true;
          showLogin();//可以在此显示登录窗口
      }
      else
     {
          Debug.LogError("初始化mgsdk失败:" + param);
      }
 }

登录

可以在初始化成功回调onInitSdkResult中调用showLogin()显示登陆窗口。 登录成功后会调用onLoginSuccess方法

void onLoginSuccess(String message)
{          
		//登陆成功后关闭遮罩,玩家可以游戏
		UIEventMaskEnd();
}

支付

在需要支付的地方,调用Payment,并传入参数 MgAndroidSdkProcessorScript.Instance.Payment(“商品key,mg后台生成”,”自定义数据,可以为订单号”).

void onPaymentResult(String message)
{

	string param = "";//附加参数
      string result = parseMessage(message, out param); //解析android端消息
      if (result == "success")//成功返回success,否则就失败
      {
			Debug.LogError("支付成功:" + param);                 
      }
      else
     {
          Debug.LogError("支付失败:" + param);
      }	 
	UIEventMaskEnd();  //支付结束后关闭遮罩,玩家可以游戏

 }

将unity导出为android项目

在菜单File->Build中,平台选android,BuildSystem选择Gradle(new),选中Export Project复选框。该示例为unity5.5.3。

将导出的项目用android studio打开。会提示如下,选中OK。
打开生成的gradle-wrapper.properties,把distributionUrl改为如下:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

Android端,在上述unity导出的android项目里。

在UnityPlayer.java中定义如下方法:

void initMgSDK() {
//配置初始化参数。xxxxxx为在Miracle Games 开发者平台创建应用时产生的AppKey
		MgSdkConfig mgSdkConfig=new MgSdkConfig();
		mgSdkConfig.AppKey="xxxxxx";
//还可以配置其他参数,比如支付服务器回调mgSdkConfig.CallbackId等等
		MgAndroidSdkProcessor.getInstance().configSDK(mgSdkConfig);	
	}
	void destroyMgSDK(){
		MgAndroidSdkProcessor.getInstance().destroy ();
	}	

在onCreate中调用initMgSDK(); 在onDestroy中调用destroyMgSDK(); 然后在模拟器上运行项目就可以测试了。