Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Unity上开发时如何正确退出Daydream应用程序(按back或X按钮)_Android_Unity3d_Virtual Reality_Daydream - Fatal编程技术网

Android 在Unity上开发时如何正确退出Daydream应用程序(按back或X按钮)

Android 在Unity上开发时如何正确退出Daydream应用程序(按back或X按钮),android,unity3d,virtual-reality,daydream,Android,Unity3d,Virtual Reality,Daydream,我找到了一些解决这个问题的方法,后退或X按钮(在左上角)不会退出应用程序,但它们似乎不再工作,而且我的应用程序一直被白日梦程序拒绝 我找到了以下解决方案: 我亲自尝试了以下两种变体: void LateUpdate() { GvrViewer.Instance.UpdateState(); if (GvrViewer.Instance.BackButtonPressed || Input.GetKeyDown(KeyCode.Escape)) {

我找到了一些解决这个问题的方法,后退或X按钮(在左上角)不会退出应用程序,但它们似乎不再工作,而且我的应用程序一直被白日梦程序拒绝

我找到了以下解决方案:

我亲自尝试了以下两种变体:

void LateUpdate() { GvrViewer.Instance.UpdateState(); if (GvrViewer.Instance.BackButtonPressed || Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } } void LateUpdate(){ GvrViewer.Instance.updateEstate(); 如果(GvrViewer.Instance.backbutton按下| | Input.GetKeyDown(KeyCode.Escape)){ Application.Quit(); } } 更简单地说:

void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } } 无效更新(){ if(Input.GetKeyDown(KeyCode.Escape)){ Application.Quit(); } } 但对于这两种变体,应用程序不断被拒绝,原因如下:

当用户选择home或back按钮时,应用程序不会退出 当用户从查看器中取出手机时,系统栏中的关闭按钮(左上角)和后退按钮都应退出VR应用程序。应用程序必须退出2D,而不仅仅是Daydream Home。关闭按钮也必须在应用程序中可见

我目前正在使用Unity 5.6和GoogleVR SDK 1.4


我错过什么了吗?是否有其他方法可以检测是否按下了后退按钮/X按钮?

如果您的应用程序是从Daydream应用程序启动的,则调用
应用程序。Quit()
将只返回Daydream应用程序,而不是Android 2D应用程序启动程序

您需要做的是用Java编写以下代码

public void Quit(Activity currentActivity) {
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_LAUNCHER);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    currentActivity.startActivity(startMain);
}
然后从Unity调用上面的Java方法

   void Update() {
        if (Input.GetKeyDown(KeyCode.Escape)) {
            Application.Quit();
        }
    }
此代码将与最新的unity版本一起使用。尝试使用unity 2018或更高版本