Unity CMCC

Unity CMCC

3 Unity3D引擎游戏的开发

3.1 复制资源文件

  1.  将CMBilling.jar复制到Assets\Plugins\Android\libs\下。
  2.  将SDK\assets目录中的文件复制到Assets\Plugins\Android\assets\下。
  3.  将SDK\res下面的文件复制到Assets\Plugins\Android\res\下。
  4.  请将g_strings.xml中的g_class_name配置为游戏真实的入口地址,默认是com.unity3d.player.UnityPlayerActivity,查看3.2部分最后一步注掉的activity入口

3.2 编辑AndroidManifest.xml文件

  • 编辑AndroidManifest.xml文件,将开机动画设置为游戏入口Activity,对真实的游戏入口进行配置,同时加上必须的权限配置。
  1. 1)添加SDK提供的Activity引用

将SDK\AndroidManifest.xml.activity.txt中的文本Copy到游戏的Assets\Plugins\Android\AndroidManifest.xml中

  1. 2)添加SDK需要的user-permision,将SDK\AndroidManifest.xml.permision.txt中的文本Copy到游戏的Assets\Plugins\Android\AndroidManifest.xml中(注意重复内容)
  2. 注掉原来的入口
      <!--<action android:name="android.intent.action.MAIN" /> 
                    <category android:name="android.intent.category.LAUNCHER" /> --> 

3.3 为游戏增加Unity3D脚本

  1. 1 添加SDK提供的C#脚本文件,将SDK\Unity3D\CmBillingAndroid.cs文件Copy到Assets\Plugins\Android\中
  2. 2 在游戏初启动界面,调用接口,CmBillingAndroid.Instance.InitializeApp(),参数:无
    调用该接口完成SDK计费流程需要的信息。该接口需在游戏一启动时调用。调用示例见SDK提供的Demo脚本,CmBillingAndroidDemo。
  3. 3 在游戏启动后,判断用户是否开启音效接口:CmBillingAndroid.Instance.IsMusicEnabled();返回值:bool类型,标识用户是选择开启音效,游戏开发者需要根据该返回值,设定游戏背景音乐是否开启。调用示例见SDK提供的Demo脚本,CmBillingAndroidDemo。
  4. 4 在游戏需要弹出计费界面的场景调用计费接口:CmBillingAndroid.Instance.DoBilling(booluseSms, boolisRepeated, String index, StringgameObject, StringruntimeScriptMethod);参数:
    	useSms:是否采用短信计费模式,true是,false则采用联网计费
    	isRepeated:标识此次计费的计费点,是否是需要重复计费的计费点,是则SDK不保存计费标志,用户可继续对该计费点付费,false,则只能计费一次
    index:计费点索引,详细介绍请参考2.4.2章节。
    gameObject:游戏场景中的对象,SDK内部完成计费逻辑后,并把计费结果通过Unity内部API(com.unity3d.player.UnityPlayer.UnitySendMessage(String gameObject,StringruntimeScriptMethod,Stringargs))通知到Unity,故游戏开发者需要指定一个游戏对象和该对象的运行脚本,用于侦听SDK的计费结果。
    runtimeScriptMethod:隶属于gameObject对象的运行时脚本的方法名称,该方法会在收到通知后触发。
    调用示例见SDK提供的Demo脚本,CmBillingAndroidDemo。
  5. 5 获取计费结果接口:
    	方式一:监听SDK付费结果(推荐使用):通过监听SDK的付费请求,获取计费结果,如接口4中定义的gameObject和runtimeScriptMethod参数,游戏可以根据运行逻辑需要,指定该参数值,在runtimeScriptMethod中即可实现对付费结果的逻辑处理,例如购买成功可继续使用,失败或取消付费可以退出游戏或返回上一菜单等。
    	注:购买结果的返回值格式:[计费点索引]+”|”+[计费结果],具体使用方式,请仔细参见CmBillingAndroidDemo的OnBillingResult方法。
    	方式二:调用SDK的购买结果接口
    	方式二,接口虽然简单,但是在游戏中不容易针对购买结果的逻辑跳转,例如正常情况SDK执行购买请求,5秒后可有结果响应,但是这个时间并不固定,故该接口的通常使用场景:游戏内触发购买动作开始计时,在设定内的时段片段内轮询该接口,直到有返回值为止,另需设置超时时间。故建议使用方式1。
    在调用接口4完成付费后,接口没有提供callback参数,故可以通过该接口判断本次计费是否成功或失败或用户取消计费
    CmBillingAndroid.Instance.GetBillingResult(String index);
    参数:
    index:计费点索引,详细介绍请参考2.4.2章节。
    返回值:整形值,CmBllingAndroid.BillingResult中给出详细定义,
    游戏开发者根据此返回值给出自定义处理逻辑,具体如下:
    BillingResult.NONE表示没有调用计费接口
    BillingResult.SUCCESS计费成功
    BillingResult.FAILED计费失败
    BillingResult.CANCELLED用户取消计费
    调用示例见SDK提供的Demo脚本,CmBillingAndroidDemo。
  6. 6判断指定的计费点是否已付费接口:
    在调用接口4之前,需要判断指定的计费点是否已经付费过,是则无需再调用计费接口,接口定义:CmBllingAndroid.Instance.GetActivateFlag(String index);
    参数:index,计费点索引,同4。
    返回值:true则已付费,false相反。
    该接口的另一个调用场景:用户进入计费界面后,不选择计费,而是点击《取消》按钮,此时再次回到游戏界面,那么游戏开发者可以通过该接口判定用户是否付费,没有付费,则直接进入游戏主界面,或菜单界面,无法继续下一关卡,用户继续玩游戏,则再次弹出计费界面。
    调用示例见SDK提供的Demo脚本,CmBillingAndroidDemo。
  7. 7游戏退出接口:
    在游戏退出的时候调用
    CmBillingAndroid.Instance.Exit();或
    CmBillingAndroid.Instance.ExitWithUI();
    前者主要是释放SDK的资源,无退出确认界面
    后者在前者的基础上含有退出确认界面。
    
    调用示例见SDK提供的Demo脚本,CmBillingAndroidDemo。

注意事项

  1. 确认含有CmBillingAndroid.Instance.InitializeApp() 的Gamestart.cs脚本有挂到splash上
  2. 确保进行时间计算的GameResult.cs不会被disable,用单例模式,可以在ondisable,ondestroy里面加断点看是否有被disable,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值