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

最近因工作需要,在研究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项目,请自行去网上搜索。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值