我相信Unity程序员都会遇到加入SDK的问题,我相信如果你不会android编程,我相信你的CPU当场计算过快而爆炸!  这里也写笔记希望能帮助大家

如果有讲错的地方,希望大家能回复并且提供答案!  让我们共同抵抗SDK 呵呵

联通SDK视频教程: http://www.taikr.com/course/197

预备知识:

1. Unity接入SDK有两种方式:

第一种:  Eclipse写好插件放入Unity当中,Unity 写好代码直接发布游戏 (运气好,盘子脸使用的第一种方式)

第二种: Unity先写好代码-》android项目-》Eclipse进行SDK接入-》使用Eclipse发布SDK

2. Unity调用java写的方法: (注释不太会写,我也不懂Android编程)

//获取Unity系统类
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//这里应该是获取当前页面
AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
//调用order静态方法,传递四个参数[当前页面,计费号,回调Unity的游戏物体名称,回调Unity的方法名]
activity.CallStatic("order", new object[] { activity, "", "Cube", "Bakcground" });

3. android调用Unity写的方法

//[游戏物体名称,方法名,传递的参数]
UnityPlayer.UnitySendMessage(gameObject,runtimeScript,arg1+"");

注意事项: (联通SDK)

1. 你写好的程序发布APK,在手机直接崩溃原因:

1. Unity的Bundle Identifier (跟你创建android项目那个程序主入口 package xxx.xxx.xxx)不匹配

2. 你的Android插件放入Unity'的时候位置出错:  (一下图是按照联通SDK拷贝,你发现少了xxx,我只能呵呵了)

3. 联通SDK调用,如果你写一个方法,直接调用pay()弹出支付界面(直接程序崩溃),你怎么死的你都不用知道!

Utils.getInstances().pay(context mContext,String number ,UniPayResultListener listener);    今天问了下坐我对面的哥哥,=。= 他告诉我是什么子线程去调用UI报错了. 然后我有一直猜是什么错误。。。。

Unity 3D手机游戏开发PDF  作者:金玺曾(在发布android游戏如何接入SDK讲的很详细)

eclipse中写的代码:

package com.example.helloworldsdk;   //这里必须要跟Unity ID对应

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.content.Context; import com.unicom.dcLoader.Utils;
import com.unicom.dcLoader.Utils.UnipayPayResultListener;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity; public class MainActivity extends UnityPlayerActivity { private Context context;
private String gameObject;
private String runtimeScript;
private UnipayPayResultListenerImp imp = new UnipayPayResultListenerImp();
private UniPayHandler handler = new UniPayHandler();
public static MainActivity _instance; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //初始化SDK
Utils.getInstances().initSDK (MainActivity.this,);
_instance = this;
} public static void order(Context _context,String number,String gameObject,String runtimeScript){
_instance.payPage(_context, number, gameObject, runtimeScript);
} //调用支付页面
public void payPage(Context _context,String number,String gameObject,String runtimeScript){
this.context = _context;
this.gameObject = gameObject;
this.runtimeScript = runtimeScript;
        //利用handler调用pay才能正确的弹出支付界面
Message msg=new Message();
msg.obj=number;
handler.sendMessage(msg);
} class UniPayHandler extends Handler
{
public void handleMessage(Message message)
{
Utils.getInstances().pay(context,(String)message.obj,imp);
}
} class UnipayPayResultListenerImp implements UnipayPayResultListener
{ @Override
public void PayResult(String arg0, int arg1, String arg2) {
//[游戏物体名称,方法名,传递的参数]
UnityPlayer.UnitySendMessage(gameObject,runtimeScript,arg1+""); }
}
}

Unity中的代码:

using UnityEngine;
using System.Collections;
using System; public class Test : MonoBehaviour { private string error; void OnGUI() {
if(GUI.Button(new Rect(,,,),"支付页面"))
{
try
{ //获取Unity系统类
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//这里应该是获取当前页面
AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
//调用order静态方法,传递四个参数[当前页面,计费号,回调Unity的游戏物体名称,支付回调Unity的方法名]
activity.CallStatic("order", new object[] { activity, "", "Cube", "Bakcground" }); }catch(Exception e)
{
error += e.Message;
}
}
GUI.Label(new Rect(, , , ), error);
}
public void Bakcground(string result)
{
error += "回调成功:" + result;
} }

接入SDK步骤:

1. 创建新的android项目

2. 导入classes.jar(Unity这个你可以查下在那个文件夹下)

3. 拷贝libs下的全部到 eclipse的libs下覆盖

4. 修改AndroidManifest.xml

5. 编写被Unity调用的代码,整个项目导出jar包,放入 Plugins/Android文件下

6. 拷贝eclipse的libs文件夹到 Plugins/Android文件下

7. 拷贝AndroidManifest.xml到 Plugins/Android文件下

8. 解压Multimode_UniPay_base.jar 和Multimode_UniPay_extend.jar包,在当前文件夹下,只把assets文件夹拷贝到Plugins/Android文件下

9. 写好代码,直接使用Unity发布APK即可

Unity和android通信的资料:

http://blog.csdn.net/xv_ly15/article/details/9314199   Unity调用android函数列子

http://blog.csdn.net/richway2010/article/details/6640837 Eclipse真机调试

祝大家生活愉快! 盘子脸

Unity 集成联通SDK的更多相关文章

  1. unity集成openinstall流程

    目的 1.Unity集成openinstall sdk? 最近在使用一个叫openinstall的SDK,通过它实现免填邀请码的功能,集成到unity游戏开发中.对App安装流程的优化,尤其是免填写邀 ...

  2. unity, 集成iOS广告sdk注意事项

    ----更新:2015-10-22 今天在unity里集成讯飞语音听写的iOS sdk,结果发现前面集成domob广告的方法搞复杂了. 其实,直接把UnityViewControllerBase当做s ...

  3. 2018年Unity结合Android SDK下载安装及配置教程

    原文:2018年Unity结合Android SDK下载安装及配置教程 首先声明: Unity版本2017.1f3        最近试着在Unity中利用网易做AR开发时,发布项目文件需要发布到An ...

  4. unity接入安卓SDK,与安卓相互通信

    .接SDK是个什么样的活计? SDK的工作流程: 1. 从unity端出发,向安卓发起一系列的请求(unity call android). 2. 安卓端收到unity端调用,然后在具体调用SDK的一 ...

  5. Unity - 接入Android SDK

    在网络上,关于Unity与Android如何进行交互,雨松MOMO大神已经有两篇文章简单介绍了如何操作(1)Unity3D研究院之打开Activity与调用JAVA代码传递参数(2)Unity3D研究 ...

  6. iOS开发——高级篇——如何集成支付宝SDK

    一.什么是支付宝 第三方支付平台 和内购非常相似内购是用户将钱付款给苹果,之后苹果分成给商户支付宝是用户将钱付款给支付宝,之后支付宝将钱转入我们的账户 使用支付宝前提购买的物品必须是和应用程序无关的. ...

  7. 集成 WeChat SDK - 支付篇

    作者感言 惯例, 开头都是要说些东西的了, 随着现在的App越来越商业化, 很多公司的App都会集成第三方的支付SDK, 这样子的成本就比较低, 但是呢, 有很多朋友还是不太会集成, 也不太爱看集成文 ...

  8. 集成支付宝SDK遇到的坑

    一.首先我先把集成过程说一下.小编想说的话:支付宝是我做支付中觉得坑最多的一个,各种编译不过,各种出问题. 废话不多说,进入主题:1.首先当前是下载官方SDK啦,当前你也可以通过cocopods进行导 ...

  9. Android集成科大讯飞SDK语音听写及语音合成功能实现

    前言 现在软件设计越来越人性化.智能化.一些常见的输入都慢慢向语音听写方向发展,一些常见的消息提示都向语音播报发展.所以语音合成和语音听写是手机软件开发必不可少的功能.目前国内这方面做的比较好的应该是 ...

随机推荐

  1. ios delegate 和 block

    //委托的协议定义 @protocol UpdateDelegate <NSObject> - (void)update; @end @interface Test : NSObject ...

  2. IOS 退出App

    UIApplication *app = [UIApplication sharedApplication]; [app performSelector:@selector(suspend)]; // ...

  3. 格而知之16:我所理解的Block(3)

    23.在前文中的例子中,Block结构体里的isa指针还没有详细讲解,这个指针都被置向了_NSConcreteStackBlock,它标识了Block的类型. 其实除了_NSConcreteStack ...

  4. 格而知之15:我所理解的Block(1)

    1.Block 本质上是一个struct结构体,在这个结构体中,最重要的成员是一个函数(当然除函数外还有其他重要的成员). 2.在开始解析Block之前,首先来回顾一下Block的格式.Block相关 ...

  5. spring + jdbc + extjs configuration

    所有源代码能够訪问我的GitHub 有空没空的稻谷了几天,最终前后台跑通了,提供一套可用的配置文件. (因为与extjs整合,spring security的登录须要重写原handler.会在后面补上 ...

  6. Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6786239 Android 系统的运行时库层代 ...

  7. NET中级课--设计模式1

    1.分类 创建型  结构型  行为型 2.总体思路 使用接口和抽象类 3.创建型 工厂: 单例:整个系统中对象是唯一的或固定数目的对象如对象池 4.结构型

  8. WPF窗体属性

    以后慢慢加吧! ResizeMode="NoResize" 禁止缩放大小 WindowStyle="ToolWindow" 隐藏最大化与最小化按钮WindowS ...

  9. JS操作URL

    function getQueStr(url, ref) //取获参数值 { ); ) { var arr = str.split('&'); for (i in arr) { ] == re ...

  10. [poj2449]Remmarguts' Date(spfa+A*)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Remmarguts' Date Time Limit: 4000MS   Mem ...