【发布时间】:2019-08-09 19:22:12
【问题描述】:
我想在Android中触发onKeyUp或者dispatchKeyEvent,给keyPress的Unity3D发消息
我制作了一个 Java 原生插件:
public class VolumeKeyClass extends Activity {
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d("Unity","onKeyUp UP");
int action = event.getAction();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_DOWN) {
Log.d("test", "Volume UP pressed! " + event);
UnityPlayer.UnitySendMessage("MainController","logStatus","Volume up!!");
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
Log.d("test", "Volume DOWN pressed! " + event);
UnityPlayer.UnitySendMessage("MainController","logStatus","Volume Down!");
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
已经测试了Unity和插件之间的通信,可以正确登录消息,但是onKeyUp和dispatchKeyEvent都没有触发发送消息,Logcat也没有。 (目标 API 15,冰淇淋三明治)
【问题讨论】:
-
您需要使用“+=”注册事件。请参阅以下内容:forums.xamarin.com/discussion/15115/…
-
AJO = new AndroidJavaObject("com.company.volumekeyslibrary.VolumeKeyClass");在我的主脚本的 Start() 中。在插件构造函数中,我有一个线程执行向统一发送保持活动消息。
-
请将edit的所有信息放入问题中,而不是将其隐藏在cmets中。
标签: java c# android unity3d native