Unity3D渠道接入系列:(一)移动游戏基地

声明:保留所有权利,任何网络转载行为,必须通过邮件取得作者许可。


前言:

最近做Unity渠道接入,挺简单的事还是研究了2、3天。

把花费了我的生命研究获得的一点经验分享一下,如果能帮到你,节约了你的研究时间,等于消耗在我生命的时间从你那获得了补偿。

所以写这个系列,希望能帮到大家。


移动游戏基地在网上的资料,相较来说是最少的,所以做为系列的开篇。


参考资料:

1、自填集成移动和游戏单机sdk的小坑(http://www.unitymanual.com/blog-19372-1861.html

2、Android支付接入(二):移动游戏基地(http://blog.sina.com.cn/s/blog_9498c8b60101bclq.html


相关配置:

移动游戏基地sdk版本:安卓网游V21119版SDK,发布日期:2014/10/17

开发平台和工具:windows,unity3D4.5.2,ADT-bundle-windows-x86_64-20140702


要点:

1、自己定义java类的Application,导出为jar包。并在AndroidManifest.xml配置对应的Application定义。


步骤:

1、编写java类定义Application,并导出为jar包“unity_sojoys_cmgcV21119.1.20141216.jar”,放入unity工程目录:\Plugins\Android\bin\

注意包名:com.sojoys.example

package com.sojoys.example;

import android.app.Application;

public class CmgameApplication extends Application {
	/**
	 * IAP版本
	 */
	static final String IAP_VERSION = "iap-cmgcV21119-1-20141216";

  public void onCreate() {
	  System.out.println("IAP(" + IAP_VERSION + ") constuctor.");
    System.loadLibrary("megjb");
  }
}

2、在unity中\Plugins\Android\AndroidManifest.xml文件修改定义。

注意:application一节[android:name=".CmgameApplication"]定义为之前jar包中定义的application名称。

<application android:icon="@drawable/app_icon" android:label="@string/app_name" android:name=".CmgameApplication" android:debuggable="true">
		<activity android:name="cn.cmgame.billing.api.GameOpenActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="landscape">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
			<intent-filter>
				<action android:name="android.intent.action.CHINAMOBILE_OMS_GAME" />
				<category android:name="android.intent.category.CHINAMOBILE_GAMES" />
			</intent-filter>
		</activity>
		<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
		</activity>

3、因为移动基地sdk提供相应的unity实现类CmBillingAndroid,所以直接实现逻辑调用即可。

以下代码举例实际的使用

public void _init ()
{
#if CMGC && UNITY_ANDROID
	CmBillingAndroid.Instance.InitializeApp();
	CmBillingAndroid.Instance.SetLoginListener(this.gameObject.name,"OnLoginResult");
#endif
}

void OnLoginResult (string result)
{ 
	log.logDebug ("LoginResult=" + result);
	int resultCode = CmBillingAndroid.LoginResult.UNKOWN;
	int.TryParse (result, out resultCode);
	if (resultCode == CmBillingAndroid.LoginResult.SUCCESS_IMPLICIT || resultCode == CmBillingAndroid.LoginResult.SUCCESS_EXPLICIT) {
		OnLoginSuccess (result);
	} else {
		OnLoginFail (result);
	}
}

void OnLoginSuccess (string result)
{
	log.logDebug ("OnLoginSuccess");
	if (result == null || result.Trim () == "") {
<span style="white-space:pre">	</span>	return;
	}
	ChannelModel.Channel_Logined = true;						
}
/// <summary>
/// 登陆失败回调
/// </summary>
/// <param name="msg">Message.</param>
void OnLoginFail (string msg)
{
	log.logWarnning ("OnLoginFail:{0}", msg);
	ChannelModel.Channel_Logined = false;						
}

4、Unity打包。

注意包名和第一步定义的包名一致: com.sojoys.example

unity设置包名


5、至此,移动基地unity接入完成。


=============

Nick

2014年12月23日

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值