Unity 5.2.1在Application.Quit()上构建崩溃;使用Windows Touch

时间:2015-12-03 14:19:59

标签: unity3d unity5

我正在将Unity 4项目升级到Unity 5.2.1。我用过Application.Quit();单击按钮关闭应用程序。这在早期(Unity 4)使用鼠标和触摸都很好,现在(Unity 5.2)也可以通过鼠标点击正常工作。但如果我使用Touch(在Windows 8或Windows 7触摸屏上)单击按钮,应用程序崩溃。

然后我通过创建一个新的Unity项目进行测试,并将带有以​​下代码的cs文件添加到主摄像头。单击此按钮时,触摸它会崩溃。但是点击鼠标不会崩溃。这是Unity 5.2.1中的错误吗?我该如何解决这个问题?

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

public Texture btnTexture;

void OnGUI()
{
    if (!btnTexture)
    {
        Debug.LogError("Please assign a texture on the inspector");
        return;
    }
    if (GUI.Button(new Rect(10, 10, 50, 50), btnTexture))
    {
        Debug.LogError("Clicked the button with an image");
        Application.Quit();
    }

    if (GUI.Button(new Rect(10, 70, 50, 30), "Click"))
        Debug.LogError("Clicked the button with text");

    }
}

由于

2 个答案:

答案 0 :(得分:1)

[编辑:] 这解决了这个问题:

System.Diagnostics.Process.GetCurrentProcess().Kill();
// instead of
// Application.Quit();

您是否曾尝试从OnGUI方法之外调用 Application.Quit ? 像这样:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour
{
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 50, 50), "Exit"))
        {
            StartCoroutine(Quit());
        }
    }

    public static IEnumerator Quit()
    {
        yield return new WaitForEndOfFrame();
        Application.Quit();
    }
}

答案 1 :(得分:0)

if(Input.GetKey(" escape"))             Application.Quit();