Unity之SDK接入(Unity与Android通信)
首先介绍一点关于Android与unity通信的知识:
完成通信主要靠unity中的class.jar包(在unity的安装目录下)。
在unity中调用android的方法:
jo.call("方法名"[,参数名]) 其中[]代表可有可无。
在endroid中调用unityu的方法:
导入class.jar包,继承UnityPlayerActivity,使用UnityPlayer.UnitySendMessage("游戏对象名","unity中的方法名","参数")
现在,我们已经有基础了,可以动手操作了
1.eclipse中新建Android工程,导入Unity安装目录下的class.jar类,添加MainActivity.java代码:
package com.example.test; import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity; import android.os.Bundle; public class MainActivity extends UnityPlayerActivity { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void Send() {
UnityPlayer.UnitySendMessage("aaa", "AndroidCallBack", "okokoko");
}
}
MainActivity
从eclipse中导出jar包
2.Unity中,新建工程,
编写EclipseCall.cs代码如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System; public class EclipseCall : MonoBehaviour
{
private AndroidJavaClass jc;
private AndroidJavaObject jo;
private Text text;
private Button btn; //单例模式
private static EclipseCall _instance;
public static EclipseCall Instance
{
get
{
if (_instance == null)
{
_instance = new EclipseCall();
}
return _instance;
}
} void Start()
{
text = GameObject.Find("aaa").GetComponent<Text>();
btn = GameObject.Find("Button").GetComponent<Button>();
this.name = "aaa"; _instance = this;
jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
} public void ClickBtn()
{
jo.Call("Send");
} public void AndroidCallBack(String str)
{
text.text = str;
}
}
EclipseCall
将eclipse中导出的jar包拖进libs文件中
打包:
下面给大家捋一下思路:
从下图中可以看出,在Unity中通过按钮点击事件调用eclipse中的Send方法,eclipse中Send方法又调用了unity的AndroidCallBack方法,通过eclipse传递参数到unity中,实现将参数显示在Text游戏对象身上。
运行,点击后的UI:
最后,给大家总结几点注意事项:
1.记得点击eclipse菜单栏的Project——>Properties——>Java Build Path_》Add External JARs...——>选择Unity安装目录下的class.jar——>Apply——>Apply and Cliose
2.**Activity.java必须继承Unity,且要实现Android与Unity的通信,必须保证一个Android项目只有一个**Activity.java类
3.unity与anddroid通信,必须从unity端打包,即上述方式。
4.调用Unity的函数时记得参数的选择,注意函数名,游戏对象。
5.脚本的绑定:unity中注意上面第4的游戏对象,必须绑定有调用的函数名的脚本。
6.unity打包的包名必须和eclipse中的对应,打包时记得添加场景。
7.如果在实际开发中(接SDK),打包是还必须注意填写keystore,密码。具体方法参考http://www.cnblogs.com/shirln/p/8384438.html
Unity之SDK接入(Unity与Android通信)的更多相关文章
- SDK接入(2)之Android Google Play内支付(in-app Billing)接入
SDK接入(2)之Android Google Play内支付(in-app Billing)接入 继上篇SDK接入(1)之Android Facebook SDK接入整理完Facebook接入流程之 ...
- SDK接入(1)之Android Facebook SDK接入
SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结.SDK接入主流分为这么几类,登录.支付. ...
- Unity之SDK接入(OPPO)
简介:首先介绍一下,为什么博主要选择OPPO的SDK接入呢,因为OPPO的SDK接入是目前博主发现最简单的SDK.所以,博主选择OPPO,带领大家接SDK从入门到精通 工作准备: 1.环境配置(SDK ...
- 社交化分享SDK for Unity
前言 社交化分享,即分享到社交网络. 本文主要记录的是在Unity集成社交化分享SDK,现主流的分享SDK有如下: 1.友盟社交化分享 for unity 2.ShareSDK分享 for unity ...
- 【Unity游戏开发】SDK接入与集成——小白入门篇
一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...
- Gvr SDK for Unity 分析(二)
前言 关于google vr sdk的具体使用,传送门 Gvr SDK for Unity 分析(一) Google Daydream平台已经整合进Google VR SDK 本文环境:Unity5. ...
- Channel SDK (渠道SDK) for Unity
渠道 英文channel,解释:商品的销售路线,也就是我们开发商(CP)都把游戏开发好了,交付给渠道帮我们运营,帮我们推广,帮我们赚钱. Android和IOS渠道 拿安卓和IOS两大平台来说,它们都 ...
- Gvr SDK for Unity 分析(一)
Gvr SDK概述 通过谷歌VR SDK for unity 为Android和iOS 构建虚拟现实应用程序 unity SDK在Android上支持构建应用程序for daydream 和 card ...
- EasyAR SDK在unity中的简单配置及构建一个简单场景。
首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面. 下载sdk和Unity Samples. 创建一个unity3d工程N ...
随机推荐
- Linux mysql开启远程访问
默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误是因为,mysql的默认配置为了增强安全性,禁止了非本机 ...
- [Abp vNext 源码分析] - 6. DDD 的应用层支持 (应用服务)
一.简要介绍 ABP vNext 针对于应用服务层,为我们单独设计了一个模块进行实现,即 Volo.Abp.Ddd.Application 模块. PS:最近博主也是在恶补 DDD 相关的知识,这里推 ...
- PhpCms V9中的{date('Y-m-d',$r[inputtime])}问题解决方法
不少朋友会碰到这个问题:在PhpCms V9中的首页或者文章内容页调用发布时间{date('Y-m-d',$r[inputtime])}调用显示1970-01-01,然后尝试用截断的方法也没有成功,应 ...
- PHP中的$_GET变量
定义 在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值. $_GET 变量 预定义的 $_GET 变量用于收集来自 method=&q ...
- Java_异常介绍
今日内容介绍: 掌握异常概述 理解异常的基础操作以及最简单的捕获处理 理解多异常捕获处理 理解声明抛出异常 掌握自定义异常 掌握异常处理注意事项 异常 什么是异常?Java代码在运行时期发生的问题就是 ...
- java练习---5
//程序员:罗元昊 2017.9.17 package demo;import java.util.Scanner;public class Ly { public static void main ...
- linux基础命令期末考试总结
1.关闭防火墙:service iptables stop 2.启动防火墙:service iptables start 3.mount命令:挂载某一设备使之成为某个目录名称 4.NFS服务:linu ...
- 温故而知新,重温 Java 7 的那些“新”特性
2009 年 4 月 20 日,Java 的亲生父亲 Sun 被养父 Oracle 以 74 亿美元收购,这在当时可是一件天大的事.有不少同学都担心 Java 的前途,我当时傻不啦叽地也很担心:自己刚 ...
- HTTP_4_返回结果的HTTP状态码
状态码:返回请求结果. 状态码种类繁多,以下总结常用的状态码: 类别 信息性状态码 1XX 服务器接受请求,继续处理 成功状态码 200 OK 请求处理成功,并返回资源(响应报文中 ...
- On The Way—Step 2 Python入门之Python内容初始
2.1 输出 print() 打印一个字符串 print('你真好!') 打印变量内容 a = '你真好!' print(a) 结果都是:你真好! 2.2 变量 变量名字规则 只能用下划线.字 ...