用的unity3d下载,只要点击player脚本,左下角就出现这个,怎么解决啊

 这两天为解决unity3d下载与android项目整合中絀现的无法监听真机back实体键的问题找了很多资料网上也有很多人遇到了这个问题,但是似乎都没找到有效的解决方法

   实现的效果是从A_Activity跳转到UnityPlayerNativeActivity,传入参数加载对应的三维图按返回键或home键分别返回上一个activity和返回桌面。默认情况下按home键会返回桌面但是按back键则无法监听到,沒有任何反应

   UnityPlayerNativeActivity这个类的加载速率据说会比较快,系统版本要求2.3以上之前也一直用这个类整合使用。但是这两天在使用这个类时一直没法解决实体按键事件的问题具体可以看下这段介绍:

2.3),老的android版本没有这个特性因为在NativeActivity中,触摸事件都是在native代码中处理的java视图正常情況下是无法获取这些事件的,不过在unity3d下载中有允许将事件传到DalvikVM的转发机制,要应用这个转发机制必须修改manifest文件如下:


   另有一种办法是鈳以在jni脚本文件里监听到实体按键,可以在脚本文件里对按键事件进行处理不过针对返回键只有一个方法可以调用,即Application.Quit();但是这个方法会退出整个application按下返回键后,三维图页面退出了同时其他页面也闪退了,无法返回到上一个activity的页面


   于是改用UnityPlayerActivity这个类进行尝试,通过测试終于发现可以直接在这个类里监听到按键但是却无法识别按键。

   只要有按键被按下这三个方法都能执行,包括音量键等但是只能监聽到按键事件,却无法识别是否按下的是返回键还是菜单键。加上KeyCode.Escape或者KeyCode.Back都无效用onBackPressed()方法也仍然无效。网上很多一样的问题却没有有效嘚答案。

找不到确切的解决办法决定改变思路再尝试下。原先的UnityPlayerActivity保持不变参数传入的接收和处理仍然在这个类里进行,自己再创建一個类来继承UnityPlayerActivity测试后发现终于可以识别到按键了,同时正常加载UnityPlayerActivity这个视图

 既然可以识别到返回键,那么接下来的问题应该就好办了按照上面的处理后,进入ExtendActivity就等于加载了UnityPlayerActivity但是按下back键后又出现了原先的问题,三维图退出了紧接着其他activity也退出了,就跟jni脚本文件里执行Application.Quit()方法的效果一样(这个还没整明白具体原因)。


[SyncVar] // 用来标记同步成员变量可以是任何基本数据类型,但不能是类、列表或其他集合

我要回帖

更多关于 unity3D 的文章

 

随机推荐