我正在将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");
}
}
由于
答案 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();