博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity android相互调用
阅读量:7045 次
发布时间:2019-06-28

本文共 1846 字,大约阅读时间需要 6 分钟。

简介

有一些手机功能,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编辑器的)

官方下载连接:

 

 

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

转载于:https://www.cnblogs.com/quansir/p/6382690.html

你可能感兴趣的文章
FancyBox - 经典的 jQuery Lightbox 插件
查看>>
sqoop:mysql和Hbase/Hive/Hdfs之间相互导入数据
查看>>
透视转换
查看>>
html的下拉框的几个基本使用方法
查看>>
超越Web,Javascript在物联网的应用
查看>>
云适配技术原理
查看>>
为iPhone 6设计自适应布局
查看>>
PHP操作数据库PDO
查看>>
Android colors.xml 颜色列表
查看>>
EF Code First 一对多、多对多关联,如何加载子集合?
查看>>
缓存篇~第六回 Microsoft.Practices.EnterpriseLibrary.Caching实现基于方法签名的数据集缓存...
查看>>
Android ROM 制作教程
查看>>
将一列包含多个ID拆分多行
查看>>
Ibatis入门基本语法(转) good
查看>>
C#.NET如何不序列化字段、属性
查看>>
Labview中的属性节点
查看>>
C语言嵌入式系统编程修炼之(五)键盘操作
查看>>
mysql之数据类型
查看>>
关于SpringMVC的文件上传
查看>>
【翻译svg教程 】svg 的坐标系统
查看>>