Android:
效果:连按两次手机返回键退出。
将下面脚本挂到场景中一个命名为GameQuit的空物体。
using UnityEngine;
using System.Collections;
public class GameQuit : MonoBehaviour {
private int mPressTimes = 0;
// Use this for initialization
void Start () {
//Ensure that there is only one gameQuit in the Scene,即使加载了下个场景Scene
GameObject [] gameQuits = GameObject.FindGameObjectsWithTag ("GameQuit");
if (gameQuits.Length == 2) {
Destroy (this.gameObject);
}
DontDestroyOnLoad (this.gameObject);
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.Escape)) {//KeyCode.Escape表示键盘ESC,手机的返回键
mPressTimes++;
StartCoroutine ("ResetMPressTimes", 1.0f);//若过了1秒都没有按第2次则重置mPressTimes
if (mPressTimes == 2) {
Application.Quit();
}
}
}
IEnumerator ResetMPressTimes (float sec) {
yield return new WaitForSeconds(sec);
mPressTimes = 0;
}
}
ios
iOS API并没有提供通常的那种终止应用程序的接口。
在iOS中,用户一般是通过按Home键来关闭应用程序的。如果你的应用程序出现API没能提供你所预期的方法的情况,推荐的做法是给用户弹出一个警告框来说明问题的本质和他可能需要采取的措施—打开WiFi启动定位服务等等。允许用户自行决定终止应用程序。
警告:不要去调用exit方法。应用程序调用exit方法的话,用户看到的是程序异常终止,而不是通常的那种程序退出并自动返回到手机主屏界面。
另外,如果调用exit方法的话,数据可能不会被存储,因为-applicationWillTerminate:和类似的UIApplicationDelegate方法们将不会被调用。
如果在开发和测试中需要终止你的应用程序的话,推荐你使用abort方法或assert宏指令。
在Unity中不能Application.Quit()对于Android程序有效,对于iOS程序无效;