想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用。真不好使,一导入执行就报错。调好错了再执行发现点button没反应。重复试了几遍发现还是没反应,没办法看源代码。结果发现仅仅实现了IOS部分,没有Android部分,我屮艸芔茻...。神伤!用IOS真机測试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,尽管不了解Android,但没有学不起来的,仅仅要想。就没有实现不了的!

。!首先还是得学习一下Android和Unity的简单交互,在这儿写个具体点的教程!

供刚開始学习的人学习,当然网上也有这方面的教程,有的地方不注意的话。还是会碰到困扰的,以下是具体步骤。很多其它教程敬请关注我的微博

效果:这里展示的Unity调用Android原生的方法实现点击Unity界面中的button,然后实现手机的震动!

关于最主要的交互,能够參考这篇文章,Unity与Android基本交互。然后在这基础之上来做实现手机震动,事实上也差点儿相同!可能反复了,当自我巩固吧,呵呵!

測试方法:必需要真机測试!

。!

实现步骤:

一、创建Androidproject

1.创建project



2.导入Unity相关jar

Jar文件夹:unity的安装路径\Editor\Data\PlaybackEngines\androidplayer\bin下的classes.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而且加入震动权限

加入同意震动的权限,选择AndroidManifest.xml,然后点击Permissions->Add UserPermission->android.perssion.VIBRATE。


5.导出jar包

在项目根文件夹上右击->Export




点击Finish结束!

二、创建Unityproject

1.在Assets下创建Plugins/Android目录,这个目录是特殊目录,专门用与存放Android的包文件,以便调用Android接口

将文件的xml,jar,res,libs文件放在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视图。然后调用自己定义方法。

(注:初步了解这里的參数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是由于在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)
activity.Call<int>("","");这个调用的是有返回值的方法,int是返回类型,activity.Call("");调用的是没返回值没參数的方法

3.导出设置(Importent)



4.真机測试

我就不上传截图了,大概就是一个button,可以点击使手机震动。另一个label。显示10和20比較的结果值。

很多其它教程欢迎关注 微博

[Unity3D]Unity+Android交互教程——让手机&quot;动&quot;起来的更多相关文章

  1. [Unity3D]Unity+Android交互教程——让手机"动"起来

    想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是 ...

  2. Unity Android交互过坑指南

    Unity Android交互过坑指南 介于网上看过很多unity和Android交互的教程,都或多或少的漏掉了一些部分,导致编译过程中出现各种问题,特此整理一份教程,仅供参考 介绍 本次实现的是在游 ...

  3. Unity3d与Android交互

    先看下效果 你一定会说,然并卵! 没错,这里只是一个最简单的例子,unity与android activity 互相传参数. 玩过手游的都知道,在你要为你心爱的游戏角色准备花钱买钻石,点击购买的时候, ...

  4. Unity3D 与android交互流程步骤

    1.Android端代码可以在Eclipse中开发(AndroidStudio没有试,应该也可以) 2.Unity3D端代码要在Unity中开发 3.Android和Unity3D端,两边都需要加入一 ...

  5. Unity3D For Android 开发教程

    原地址:http://game.ceeger.com/Unity/Doc/2011/Unity3D_For_Android.html 我自认为抵挡诱惑的能力还是很强大的,关键的时候还能把持住自己.今天 ...

  6. Android初级教程获取手机系统联系人信息

    在手机内部,对联系人信息存在对应的数据库.我们创建的而联系人信息都存在这张表中.如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码了. 代码如下 ...

  7. Android初级教程获取手机位置信息GPS与动态获取最佳方式

    简单介绍一下gps定位的操作. 主要是靠locationmanger这个api完成的一些操作:通过获取这个实例,然后调用它的requestLocationUpdates方法进行注册.传入的参数分别有以 ...

  8. Android初级教程调用手机拍照与摄像功能

    这个小案例建议在手机上运行. package com.example.camera; import java.io.File; import android.net.Uri; import andro ...

  9. Android 游戏教程让人物动起来

    在这里给大家分享Android游戏教程怎样让人物动起来,话不多说了,直接进入正题. 一. 准备工作     首先要准备好要使用的人物动作图和地形图.把它分割成16个不同的动作,循环播放同一行的4个不同 ...

随机推荐

  1. 给WebAPI的REST接口服务添加测试页面(一)

    当使用WebAPI提供REST服务的时候,一个经常进行的操作是对接口进行测试.Asp.net WebAPI框架本身并没有提供这一接口,不过由于提供的是标准的REST服务,是可以非常方便的使用一些第三方 ...

  2. POJ 1222 POJ 1830 POJ 1681 POJ 1753 POJ 3185 高斯消元求解一类开关问题

    http://poj.org/problem?id=1222 http://poj.org/problem?id=1830 http://poj.org/problem?id=1681 http:// ...

  3. HTML5制作简单画板

    <!DOCTYPE HTML> <html lang="en-US"> <head> <title></title> & ...

  4. lua string介绍

    1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...

  5. qt 中文乱码 处理QByteArray类型里含中文的数据

    qt解析tcp通信传来的xml时,中文有乱码 解决方法: 头文件加入 #include <QTextCodec> QByteArray tmpQBA = m_pSocket->rea ...

  6. OpenCV Shi-Tomasi角点检测子

    Shi-Tomasi角点检测子 目标 在这个教程中我们将涉及: 使用函数 goodFeaturesToTrack 来调用Shi-Tomasi方法检测角点. 理论 代码 这个教程的代码如下所示.源代码还 ...

  7. 使用HttpClient发送请求接收响应

    1.一般需要如下几步:(1) 创建HttpClient对象.(2)创建请求方法的实例,并指定请求URL.如果需要发送GET请求,创建HttpGet对象:如果需要发送POST请求,创建HttpPost对 ...

  8. http://www.cnblogs.com/zhoujinyi/p/3437475.html

    http://www.cnblogs.com/zhoujinyi/p/3437475.html

  9. Windows之权限的继承性 累加性 优先性 交叉性及四项基本原则

    Windows NT以后的文件,及文件夹共享设置有以下特性:继承性.累加性.优先性.交叉性.     继承性是说下级的目录在没有经过重新设置之前,是拥有上一级目录权限设置的.这里还有一种情况要说明一下 ...

  10. JS 与Flex交互:html中的js 与flex中的actionScript通信

    Flex与JavaScript交互的问题,这里和大家分享一下,主要包括Flex调用JavaScript中的函数和JavaScript调用Flex中的函数两大部分内容. Flex 与JavaScript ...