简介

有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如...

有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去编写Java代码,然后打包jar导入到Unity工程,然后通过Unity提供的调用Android接口的函数去调用jar包中的函数即可。

这里我们就介绍一下使用Unity实现手机震动效果

实现内容简要说明:

1.     Android提供jar文件,xml文件,res目录,libs目录

2.     通过AndroidJavaClass去调用Android函数

另外,这些功能只能在真机上运行!

具体实现:

Android部分

1.下载AndroidSDK(需要包含ADT编辑器的)

官方下载连接:http://developer.android.com/sdk/index.html

2      创建Android项目

菜单位置:File ->New->Android Application Project

创建过程中,只有一下这个界面的内容需要更改,其他的使用默认的就行

生成后解决方案的目录如图

其中MainActivity就是我们需要编辑的java文件了

3.     导入Unity相关jar

Jar目录:unity的安装路径D:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的classes.jar

通过AddExternalArchives添加,如图:

4.     导入jar后,就可以开始编辑相关的函数了,打开MainActivity

添加unityActivity,使MainActivity继承UnityPlayerActivity,并把SetContentView函数删掉(不然到手机上启动程序的时候就会只看到一句HelloWorld),这里用一个比较函数Max作为例子,有参数,有返回值

5.     到这里,需要的函数已经写完,再修改一下xml文件

Xml文件在工程文件目录下,叫AndroidManifest.xml

6.     接下来到处jar包

点击Export后选择Java目录下的Jar file,选择好路径之后按默认选项去到处jar文件即可

7.     到这里Android部分结束了

Unity部分

1.     设置PlayerSetting,要与Android的package对应上

2.     在Assets目录下添加Plugins\Android目录,把Android的jar文件,res文件夹,libs文件夹,xml文件放入该目录

注意:

A:libs目录下面不要有unity的安装路径D:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的classes.jar(要删除unity的classes.jar文件)

B:如果build时报Failed to re-package resources.

这个问题是因为Android后面SDK版本中使用了新的主题Theme,而我们在编译的SDK中可能包含,这里简单粗暴地方式是将values、values-11、values-14以及AndroidMenifest文件中有关主题Theme的定义和使用全都去掉,因为我们在这里创建的Android工程本身是与Unity层通信使用的,定义和使用Theme意义并不大,所以可以去掉;另外我们可以将其所以来的库引入或者使用最新的SDK去编译它。

C:如果build时报can't add script component because the script class cannot be found

3.     调用相关函数

(注:初步了解这里的参数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因为在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)

unity android相互调用http://blog.csdn.net/crazy1235/article/details/46733221

unity android相互调用的更多相关文章

  1. unity与Android相互调用

    原地址:http://www.cnblogs.com/ayanmw/p/3727782.html 现在unity 导出的android客户端需要调用 Android 的支付SDK,但是unity与an ...

  2. Android和JavaScript相互调用的方法

    转载地址:http://www.jb51.net/article/77206.htm 这篇文章主要介绍了Android和JavaScript相互调用的方法,实例分析了Android的WebView执行 ...

  3. WebView中Js与Android本地函数的相互调用

    介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Andr ...

  4. Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

    在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...

  5. android与javascript相互调用

    下面这一节来介绍android和javascript是怎么相互调用的,这样我们的UI界面设计起来就简单多了,而且UI设计起来也可以跨平台.现在有好多web app前台框架了,比如sencha和jque ...

  6. Hybrid App开发模式中, IOS/Android 和 JavaScript相互调用方式

    IOS:Objective-C 和 JavaScript 的相互调用 iOS7以前,iOS SDK 并没有原生提供 js 调用 native 代码的 API.但是 UIWebView 的一个 dele ...

  7. [Unity3D]Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

  8. Android JNI学习(三)——Java与Native相互调用

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  9. Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

随机推荐

  1. c语言构造类型之数组_01

    构造类型--constructed type.至于定义,笔者就省略了,有兴趣的同学可以百度搜索https://www.baidu.com/.今天我们要说的是c语言中最简单的构造类型--数组(array ...

  2. C# TextBlock 上标

    我需要做一个函数,显示 ,但是看起来用 TextBlock 做的不好看. 我用 WPF 写的上标看起来不好看,但是最后有了一个简单方法让他好看. 本文告诉大家如何做一个好看的上标. 一开始做的方法: ...

  3. 逆向知识第一讲,IDA的熟悉使用,以及TEB,PEB结构

    逆向知识第一讲,IDA的熟悉使用,以及TEB,PEB结构 一丶熟悉IDA,以及手工制作sig文件. IDA,静态分析工具,网上随便找一个即可下载. 首先,我们写一个可执行EXE,最简单的 使用IDA打 ...

  4. C# WinForm DataGridView让DataPropertyName支持复杂属性

    首先给Grid添加BindingSource,类型为BindingForForm2.或者设置Grid的DataSource为IEnumerable<BindingForForm2>. Bi ...

  5. javascript 之基本包装类型--04

    基本包装类型 基本包装类型是特殊的引用类型.每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可以调用属性.方法来进行后续操作. ECMAScript还提供了三种基本包装类型 ...

  6. 【ASP.NET MVC 学习笔记】- 11 Controller和Action(2)

    本文参考:http://www.cnblogs.com/willick/p/3331513.html 1.MVC一个请求的发出至action返回结果的流程图如下: 重点是Controller Fact ...

  7. JAVA基础知识总结:一

    一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器(爱奇艺,乐视, ...

  8. LeetCode 100. Same Tree (相同的树)

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

  9. go 代码的调试---打印调用堆栈

    本文介绍如何打印调用堆栈进行go代码的调试. 打印堆栈使用的runtime package中的Stack()函数 func Stack(buf []byte, all bool) int Stack ...

  10. Hibternate框架笔记

    Hibernate框架 配置 配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE h ...