Unity3d接入googleplay内购详细说明(二)

本文是Unity3d接入谷歌内购系列教程的第二部分,主要讲解如何实现Unity3d与Android的通信、使用Eclipse运行Unity导出的工程,以及Java代码接入谷歌内购的准备工作。教程详细阐述了从Unity导出正式签名Apk的步骤,以及在Eclipse中设置和运行Unity工程的方法,为接入谷歌内购打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为本文内容比较多,整理花费时间比较长,故分几篇完成,以下为本文目录结构,方便查阅:


Unity3d接入googleplay内购详细说明(一)

引言

一、准备条件:

二、谷歌开发者后台应用创建说明:


Unity3d接入googleplay内购详细说明(二)

三、Unity3d向安卓通信以及接受通信

四、Unity导出安卓Apk正式签名说明

五、使用Eclipse运行unity导出的工程

六、Java代码接入谷歌内购:

七、谷歌内购Java代码


Unity3d接入googleplay内购详细说明(三)

八、Apk上传谷歌商店测试版以及添加测试者

九、Zipalign处理APK文件

十、添加google+群组并邀请其成为测试者

十一、测试机googleplay安装以及配置:


Unity3d接入googleplay内购详细说明(四)

十二、真机测试中出现的常见错误以及解决方式:

十三、成功测试购买以及正式版发布



————————————————————————————————————————————————————————————


三、Unity3d向安卓通信以及接受通信

1、作为测试的是临时写的unity3ddemo,只具有最基本的支付功能。首先解决unity安卓通信,这个基本上都是固定的代码。

例子里面分别添加了2种有效商品,后台中sku分别为jb_1,lb_1;


2、其中主要就几句代码,基本通用,需要改的仅是“Pay”方法,以及注意传入的string参数(用来区分不同sku):

private void UnityToAndroid(string buykey)

{

AndroidJavaClass m_unityPlayer = newAndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject m_curActivity = m_unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");        

m_curActivity.Call("Pay",buykey);    

}


3、所有代码如下: 

using UnityEngine;

usingSystem.Collections;

public classGUIpay : MonoBehaviour

{

       private int i = 0;

       private int j = 0;

       private string key;//suk

       private string MessageFromAndroid;//从安卓端接受的消息

       void OnGUI(){

              if(GUILayout.Button("金币1",GUILayout.Height(100),GUILayout.Width(150))){

                     i++;

                     key="jb_1";

                     UnityToAndroid(key);

              }

              if(GUILayout.Button("礼包1",GUILayout.Height(100),GUILayout.Width(150))){

                     j++;

                     key ="lb_1";

                     UnityToAndroid(key);

              }

              GUILayout.Button("购买:"+key+"分别:"+i.ToString()+"次/"+j.ToString()+"次",GUILayout.Height(100),GUILayout.Width(200));  

       GUILayout.Button("AndroidMessage:"+MessageFromAndroid,GUILayout.Height(100),GUILayout.Width(200));             

       }

       //安卓支付通信

       private void UnityToAndroid(stringbuykey){

              AndroidJavaClass m_unityPlayer =new AndroidJavaClass("com.unity3d.player.UnityPlayer");

              AndroidJavaObject m_curActivity =m_unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");        

              if(m_curActivity == null)

              {            

                     Debug.LogError("获得不到JAVA对象");

                     return;

              }

              m_curActivity.Call("Pay",buykey);    

       }

       //从安卓端接受消息,因为本脚本挂在一直存在的MainCamera对象上,将从其上获取消息,对应java代码要将消息发送对象指定为MainCamera

       void Messgae(string message)

       {

              MessageFromAndroid = message;

       }

}

4、运行效果如下,点击会报错,所以只能在真机上测试:

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值