可以设定一个int值比如escapeTimes初始值设为1;当检测到“Input.GetKey(KeyCode.Escape)”后escapeTimes++;然后 if(Input.GetKey(KeyCode.Escape) && escapeTimes > 1) { Application.Quit(); } 最后通过协同函数检测如果按两次返回键时间间隔过长,则重置。具体代码(C#)如下: int escapeTimes = 1; void Update() { if(Input.GetKey(KeyCode.Escape)) { //这个地方可以写“再按一次退出”的提示 escapeTimes++; StartCoroutine("resetTimes"); if(escapeTimes > 1) { Application.Quit(); } } } IEnumerator resetTimes() { yield return new WaitForSeconds(1); escapeTimes =1; }
或者使用GUI确认菜单吧 var isQuit; function Start(){ isQuit=false; } function Update () { if (Input.GetKey(KeyCode.Escape)) { isQuit=true; } } function OnGUI() { if (isQuit) { GUI.Box(Rect(0,0,200,100),"确定要退出吗?") if (GUI.Button(Rect(20,50,70,30),"是")) { Application.Quit(); } if (GUI.Button(Rect(110,50,70,30),"否")) { isQuit=false; } } }