android - 从导出的统一项目 Activity 中检测 Android Studio 中的触摸事件

标签 android unity-game-engine onclick onclicklistener touch-event

我结合了一个 Unity 和 Android Studio 项目,这样当用户按下 Android Studio 制作的应用中的按钮以启动 3D 游戏时,该应用会打开一个 UnityPlayerActivity。 一切正常,但现在我需要检测用户是否触摸了屏幕,然后返回到之前的 Activity (在 Unity 应用程序之外)。

我看过:

@Override public boolean onTouchEvent(MotionEvent event)
{
   return mUnityPlayer.injectEvent(event);
}

` 并尝试从那里检测触摸,但没有成功。我也试过:

@Override public boolean onKeyDown(int keyCode, KeyEvent event)
    {

        if (keyCode == KeyEvent.ACTION_DOWN) {

        } 
}

@Override public boolean dispatchKeyEvent(KeyEvent event)
    {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {

    }
}

我最后一次尝试是:

mUnityPlayer.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {

             }
         });

但似乎没有任何效果。那么,当我导出到 Android Studio 时,如何检测到 UnityPlayerActivity 上的任何位置的触摸?

最佳答案

Unity Activity 在前台,因此其他 Activity 不会收到任何事件。

您将需要退出 unity Activity ,因此您应该在 unity 应用程序内实现关闭 Unity 部分的代码。

查看 Input.GetKeyUp(KeyCode.Escape) 以了解何时按下后退按钮。 还有 this question有一个答案可以帮助您与 Android Activity 进行交互而不是关闭所有内容(我在此处复制相关代码以防链接断开)

if (Input.GetKeyUp(KeyCode.Escape))
{
    if (Application.platform == RuntimePlatform.Android)
    {
        AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
        activity.Call<bool>("moveTaskToBack", true);
    }
    else
    {
         Application.Quit();
    }
 }

关于android - 从导出的统一项目 Activity 中检测 Android Studio 中的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53661154/

相关文章:

javascript - 点击图片播放声音 PHONEGAP

android - LifecycleOwner : difference between Fragment (self) and Fragment#viewLifecycle

ios - 统一 ARKit : How can I get trackingState properly?

c# - 如何统一使用wwwform传递json

javascript - 使用 javascript 更改参数值

javascript - ClearTimeout 是否可以在超时到期但尚未获得执行机会的情况下清除超时?

android - Facebook 应用测试人员未收到通知

php - Android使用GSON在listview中显示记录

Android Nougat 多窗口 minHeight

unity-game-engine - 检测哪些 Tilemap 单元与 Unity 中的 Collider2D 发生碰撞