您的位置:首页 > 移动开发 > Unity3D

Unity项目接收不到android的KeyEvent的解决办法

2014-08-01 12:58 423 查看
最近因工作需要,在研究android和untiy的通信机制。发现在Unity项目中,系统的dispatchKeyEvent方法无法响应。弄了好久也不知道所以然,偶然的机会了解到一种android和Unity通信的另一种方式,这个问题就豁然开朗了。

背景说明:untiy和android的通信有两种机制。

第一种:大家都比较熟悉,就是android项目打成jar包,然后将资源文件拷贝到指定的Unity项目中的目录下,即可。

第二种:是将unity项目导出为Eclipse项目,然后在Eclipse中进行开发。

这两主要介绍一下第二种方式

第一步,将你的unity项目导出为Eclipse项目,在导出的时候不需要拷贝任何的android资源到该项目下,只需定好该项目的包名即可。

第二步,将导出的项目导入Eclipse中,进行二次开发

将unity自动生成的几个Activity类的父类检查一下,如果发现是NativeActivity请修改为Activity。因为NativeActivity的属性就是监听不到dispatchEvent方法。这样你的Activity就能接收到系统KeyEvent了,是不是很简单?

另外你会发现在Eclipse项目中asset目录下有个bin文件夹,这个是untiy文件。如果修改unity项目,只需重新build,然后在将项目目录下的temp/StagingArea/assets/bin文件夹拷贝替换即可。

最后你就可以在Eclipse中打包你的apk文件了

注意:基本的通信机制其实没有变,只是实现方式有点变化而已。

UnityPlayer.UnitySendMessage通过该方法将android端的事件可以传给unity场景

友情提示,如果不知道怎么从Unity中导出Eclipse项目,请自行去网上搜索。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐