[Unity3D]Unity+Android交互教程——让手机"动"起来
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用。真不好使,一导入执行就报错。调好错了再执行发现点button没反应。重复试了几遍发现还是没反应,没办法看源代码。结果发现仅仅实现了IOS部分,没有Android部分,我屮艸芔茻...。神伤!用IOS真机測试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,尽管不了解Android,但没有学不起来的,仅仅要想。就没有实现不了的!
。!首先还是得学习一下Android和Unity的简单交互,在这儿写个具体点的教程!
供刚開始学习的人学习,当然网上也有这方面的教程,有的地方不注意的话。还是会碰到困扰的,以下是具体步骤。很多其它教程敬请关注我的微博!
效果:这里展示的Unity调用Android原生的方法实现点击Unity界面中的button,然后实现手机的震动!
測试方法:必需要真机測试!
。!
实现步骤:
一、创建Androidproject
1.创建project
2.导入Unity相关jar
3.打开MainActivity.java,导入各种包,编写自己的函数
package com.example.clickshake; import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;
import android.app.Service;
import android.os.Vibrator; //震动的包 public class MainActivity extends UnityPlayerActivity { private Vibrator mVibrator01;//声明一个振动器对象 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} //震动函数
public void ClickShake()
{
mVibrator01 = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
mVibrator01.vibrate(new long[]{100,10,100,1000},-1);//自己定义整栋模式。仅仅震动一次
} //推断大小
public int Max(int a,int b)
{
if(a>b)
return a;
return b;
} }
加入unityActivity。使MainActivity继承UnityPlayerActivity。并把SetContentView函数删掉(不然到手机上启动程序的时候就会仅仅看到一句HelloWorld),这里有两个自己自己定义的函数基本的就是上面的没有參数的调用振动器的自己定义函数,还有个就是有返回值有參数的比較大小的函数。这里用两个不同的函数在Unity中调用做对照。
4.改动XML而且加入震动权限
5.导出jar包
二、创建Unityproject
1.在Assets下创建Plugins/Android目录,这个目录是特殊目录,专门用与存放Android的包文件,以便调用Android接口
2.写Unity调用Android代码
using UnityEngine;
using System.Collections; public class NewBehaviourScript : MonoBehaviour { private AndroidJavaObject activity;
private int res = 0;
// Use this for initialization
void Start () {
AndroidJavaClass jc=new AndroidJavaClass("com.unity3d.player.UnityPlayer");
activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
res = activity.Call<int>("Max", new object[] { 10, 20 });
} void OnGUI()
{
GUI.Label(new Rect(20, 20, 300, 20), "调用的Android方法:求出10和20中比較大的数字是"+res.ToString());
GUI.Label(new Rect(20, 70, 300, 20), "http://blog.csdn.net/dingxiaowei2013");
if ( GUI.Button(new Rect(Screen.width / 2 - 20, Screen.height / 2 + 20, 100, 40), "点击震动"))
{
activity.Call("ClickShake");
} }
}
说明AndroidJavaObject是一个java对象,这里获取的是java视图。然后调用自己定义方法。
3.导出设置(Importent)
4.真机測试
[Unity3D]Unity+Android交互教程——让手机"动"起来的更多相关文章
- [Unity3D]Unity+Android交互教程——让手机"动"起来
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是 ...
- Unity Android交互过坑指南
Unity Android交互过坑指南 介于网上看过很多unity和Android交互的教程,都或多或少的漏掉了一些部分,导致编译过程中出现各种问题,特此整理一份教程,仅供参考 介绍 本次实现的是在游 ...
- Unity3d与Android交互
先看下效果 你一定会说,然并卵! 没错,这里只是一个最简单的例子,unity与android activity 互相传参数. 玩过手游的都知道,在你要为你心爱的游戏角色准备花钱买钻石,点击购买的时候, ...
- Unity3D 与android交互流程步骤
1.Android端代码可以在Eclipse中开发(AndroidStudio没有试,应该也可以) 2.Unity3D端代码要在Unity中开发 3.Android和Unity3D端,两边都需要加入一 ...
- Unity3D For Android 开发教程
原地址:http://game.ceeger.com/Unity/Doc/2011/Unity3D_For_Android.html 我自认为抵挡诱惑的能力还是很强大的,关键的时候还能把持住自己.今天 ...
- Android初级教程获取手机系统联系人信息
在手机内部,对联系人信息存在对应的数据库.我们创建的而联系人信息都存在这张表中.如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码了. 代码如下 ...
- Android初级教程获取手机位置信息GPS与动态获取最佳方式
简单介绍一下gps定位的操作. 主要是靠locationmanger这个api完成的一些操作:通过获取这个实例,然后调用它的requestLocationUpdates方法进行注册.传入的参数分别有以 ...
- Android初级教程调用手机拍照与摄像功能
这个小案例建议在手机上运行. package com.example.camera; import java.io.File; import android.net.Uri; import andro ...
- Android 游戏教程让人物动起来
在这里给大家分享Android游戏教程怎样让人物动起来,话不多说了,直接进入正题. 一. 准备工作 首先要准备好要使用的人物动作图和地形图.把它分割成16个不同的动作,循环播放同一行的4个不同 ...
随机推荐
- External components provide true shutdown for boost converter
The step-up switching-converter circuit in Figure 1 presents a familiar problem: If you shut down bo ...
- 解决IIS 不能下载.exe.config文件的方法
IIS允许下载".config"文件 Config文件是web的配置文件,默认是不允许下载的,就算在MIME中配置“application/octet-stream”,也是下载不了 ...
- 网络游戏MMORPG服务器架构
转载于:http://justdo2008.iteye.com/blog/1936795 1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构 .关键词 网络协议 网络IO 消息 ...
- (转载)iPhone开发视频教程 Objective-C部分 (51课时)
感谢好人的无私贡献!来源:http://www.cnblogs.com/aimeng/p/3370012.html 第一.二章 OC基础语法 iPhone开发教程 第一章 OC基础语法 i ...
- @ERR Unsupported CONFIG parameter: notify-keyspace-events
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Unsupported CONFIG parameter: noti ...
- Integer判断相等,到底该用==还是equals
在项目中涉及到整数判断的时候一直都是使用"=="进行判断的,但是用的时候心里老是在犯嘀咕,是不是应该使用equals呀?今天来看下这个问题! 在Object类中,equals方法的 ...
- 数学图形(1.41)super spiral超级螺线
一种很酷的螺线,看着有种分形学的感觉.参考自http://www.2dcurves.com/spiral/spirallos.html 其数学的极坐标表达式如下: 我的脚本代码如下: #http:// ...
- Win7+Qt5.6.0(64位)+msvc2015编译器 环境配置
根据“Qt简介,Qt 5.6.0-VS2015 版本安装配置图文教程”安装第二套IDE,使用Qt官方的集成开发环境 QtCreator + 微软的WinDbg调试器(内含命令行调试器为CDB)的组合. ...
- M1卡说明及使用proxmark3破解方法
看了网上写的一些关于M1卡的文章,多数有些误导之嫌.首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8K位.1Byte=1B=8位.其实也就是说8k位想到于1K ...
- mongodb聚合管道用法
基本用法 db.collection.aggregate( [ { <stage> }, ... ] ) stage如下 名称 描述 $addFields 将新的字段添加到文档中,输出的文 ...