[Unity3D]调用Android接口
简介
有一些手机功能,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的安装路径\Editor\Data\PlaybackEngines\androidplayer\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文件放入该目录
3. 调用相关函数
(注:初步了解这里的参数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因为在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)
引自:http://blog.csdn.net/xv_ly15/article/details/9314199
Android权限列表
另外,附上Android权限列表链接(http://blog.csdn.net/xv_ly15/article/details/9314299)
[Unity3D]调用Android接口的更多相关文章
- Unity3D 调用Android与IOS的剪贴板
Unity3D剪贴板 最近遇到一个需要调用Android与IOS设备本身剪贴板的需求,就是在Unity中,要将文本复制到设备本身的剪贴板中,然后在其他应用程序中都能粘贴. 最开始在网上查到的方式是使用 ...
- Unity3D调用android方法(非插件方式)
关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...
- [原] unity3d调用android版 人人sdk
开发过程 遇到天坑:纯android工程没问题,集成到unity3d中 就老提示 没登陆 .最后跟到底 发现是Util.java 中 openUrl 函数出的bug.unity3d 中调android ...
- [原]unity3d调用android webView
1.配置dialog xml文件: <resources> <style name="dialogStyleWindow" parent="@an ...
- [Unity3D]Unity+Android交互教程——让手机"动"起来
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是 ...
- [Unity3D]转让Android介面
简单介绍 有一些手机功能.Unity没有提供对应的接口.比如震动,比如不锁屏,比如GPS.比如... 有太多的特殊功能Unity都没有提供接口.这时候,我们就须要通过使用Android原生的ADT编辑 ...
- [Unity3D]Unity+Android交互教程——让手机"动"起来
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用.真不好使,一导入执行就报错.调好错了再执行发现点button没反应.重复试了几遍 ...
- unity调用Android的jar包
简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...
- Unity3d调用iOS陀螺仪
How to write gyroscope controller with Unity3d http://blog.heyworks.com/how-to-write-gyroscope-contr ...
随机推荐
- windows下重新安装TCP/IP协议栈
一.windows重装TCP/IP协议 前两天在windows下安装开发环境的时候,把系统的TCP/IP协议栈给搞跪了,导致系统无法ping localhost.无法在程序中创建socket等 ...
- python int与str转换
string -> int 1. 10进制string 转换为 int int("12") 2. 16进制string 转换为 int int("12" ...
- OpenCV白平衡算法之灰度世界法(消除RGB受光照影响)
在用OpenCV对图像进行处理时,利用颜色定位是常常会接触到的方法,但RGB受光照影响比较严重,转换到HSV XYZ等空间也解决不了时, 可以用白平衡算法进行修正,使其发黄.发蓝.发红的照片更加趋于自 ...
- jsp 页面 jstl 日期的计算
1. <% page import ="java.util.Date"%> 2. <% Date date = new Date(); date = new Da ...
- html+asp.net上传文件
type="file" 的name以及id一定要写,并且名字相同 http://niunan.iteye.com/blog/479605 <form id="for ...
- webstorm搭建node服务器
前言,搭建服务器,必须有node.js环境(吐槽:本来就是用node搭建的(⊙o⊙)…) 下载node.js 网址 https://nodejs.org/en/ 先新建项目: 这里选择Node.js ...
- VBA中四种自动运行的宏以及模块的含义
在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate, Auto_Deactivate. ...
- 小例子(三)、winform控件的移动
程序:Do You Love Me ? 说明:就是鼠标移动到“不爱”按钮上按钮就会移动到其他地方 代码: //鼠标进入控件表面的事件MouseEnter //this.ClientSize.Width ...
- cd命令进入D盘
CD命令是更改目录命令如果要进入D盘 不用这个命令 直接输入 D: 回车 即可要是你非要使用CD命令那要加参数/DCD D:系统只是认为你想在系统中记忆一下D盘所以还是返回原先目录例:D盘下有一个目录 ...
- 转:Vmware Exsi使用简要说明
界面介绍 Exsi的管理工具可以用vSphere Client来管理虚拟机.管理虚拟的网络交换机.管理物理机的内存.物理机的硬盘.物理机的CPU等资源.界面的大致介绍如下图. 资源分配 创建内存.CP ...