2016-08-05 165 views
2

我在Unity 5.3.4中編寫C#代碼。我一直在試圖開發一個按鈕,當我在我的電腦上測試它,或者當我在Android或iOS上時,它會關閉應用程序。Unity通用關閉按鈕C#

爲Android,我發現這段代碼和它的工作:

if (Application.platform == RuntimePlatform.Android) { 
     if (Input.GetKeyUp(KeyCode.Escape)) { 
      //quit application on return button 
      Application.Quit(); 
      return; 
     } 
} 

如果按返回按鈕這將退出代碼。我開發了一個函數,當你按下退出按鈕並調用Application.Quit()時被調用。問題是,當我在我的計算機中測試代碼時,這不起作用。

是否有一種更一般的方式關閉一個APP的統一,獨立於您運行APP的平臺?

+0

你的意思是在編輯器中?或者你的exe文件不能關閉。 –

+0

@SP。我在編輯器中,處於播放模式。 – xrr

回答

2

使用UnityEditor.EditorApplication.isPlaying = false;在編輯器中停止遊戲。

如果您甚至想要退出Unity以及所有設備中的應用程序,請使用System.Diagnostics.Process.GetCurrentProcess().Kill();

但是Application.Quit()可以在大多數設備上正常工作。這不是一個可以調用的編輯器方法。

3

您的移動應用程序(Anroid或iOS)絕不應該有退出按鈕。這是主頁按鈕的功能。

現在你明白了,在編輯器Application.Quit();被忽略。您將UnityEditor.EditorApplication.isPlaying設置爲false以退出遊戲編輯。在預處理器指令的幫助下,您可以創建一個可在編輯器和獨立版本上工作的退出函數。

void Quit() 
{ 
    #if UNITY_EDITOR 
    UnityEditor.EditorApplication.isPlaying = false; 
    #else 
    Application.Quit(); 
    #endif 
} 

編輯

MUSTUnityEditor.EditorApplication.isPlaying = false;#if UNITY_EDITOR,就像我在上面的Quit()功能做了或你的應用程序將無法建立以後。

Unity將拋出名稱`UnityEditor'在當前上下文中不存在錯誤消息。

+0

在android上,您應該使用後退按鈕關閉應用程序。 ([android back button](http://answers.unity3d.com/questions/25535/android-back-button-event.html)) – ColmanJ

+0

@ColmanJ是的,你應該。你甚至可以設置'Input.backButtonLeavesApp = true;',這將自動退出應用程序回按鈕按下。這適用於Android和Windows手機。在iOS上,主頁按鈕應該沒有任何代碼就可以正常工作。 TBH,我認爲OP有一個UI按鈕用於退出應用程序,這是我說他永遠不應該做的事情。 – Programmer