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

创建过程中,只有一下这个界面的内容需要更改,其他的使用默认的就行
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7030/39359e56-3091-3cdd-85ba-f49e54bec91c.jpg[/img]
[/img]

生成后解决方案的目录如图
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7032/6365d43d-d2a3-38b2-b599-a40f385f17f4.jpg[/img]
[/img]

3. 导入Unity相关jar

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

通过AddExternalArchives添加,如图:
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7034/36ef6592-ae2a-3445-a778-d637afbe974d.jpg[/img]
[/img]

4. 导入jar后,就可以开始编辑相关的函数了,打开MainActivity
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7036/e18e12f8-db1c-3bc1-a416-c33f2d5bb461.jpg[/img]
[/img]

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

5. 到这里,需要的函数已经写完,再修改一下xml文件
Xml文件在工程文件目录下,叫AndroidManifest.xml
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7038/5464acc4-9f58-3e4e-84a2-6fff6b124f7b.jpg[/img]
[/img]

6. 接下来到处jar包
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7040/c0bf3eb0-7110-374d-9b3b-4cd5a1d7f991.jpg[/img]
[/img]
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7042/44aeb071-c731-314f-a05f-33c4ae432a82.jpg[/img]
[/img]
点击Export后选择Java目录下的Jar file,选择好路径之后按默认选项去到处jar文件即可


7. 到这里Android部分结束了


Unity部分

1. 设置PlayerSetting,要与Android的package对应上
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7044/9a34a7a6-2ff9-3418-b2ce-448713ff957c.jpg[/img]
[/img]

2. 在Assets目录下添加Plugins\Android目录,把Android的jar文件,res文件夹,libs文件夹,xml文件放入该目录
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7046/c60ae481-09f0-3d25-ba0e-25bdd1185455.jpg[/img]
[/img]

3. 调用相关函数
[img]
[img]http://dl2.iteye.com/upload/attachment/0092/7048/64d2ea90-a9a7-3606-9a47-a01275db6307.jpg[/img]
[/img]
(注:初步了解这里的参数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因为在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值