2015-05-14 50 views
-1

我想在Unity中創建一個Quit按鈕,但是當我將腳本添加到按鈕並單擊它時,它不會退出。QuitApplication Button on unity

這裏是我的C#腳本:

using UnityEngine; 
using System.Collections; 

public class Quit_App : MonoBehaviour { 
    void OnClick() { 
     Application.Quit(); 
    } 
} 

我已經創建並分配給使用UI畫布,我用的是Button(Script)箱,以便使用OnClick()框來執行該代碼。 在那裏,我選擇它作爲object MyButton和使用字符串名稱的Quit_App()函數。

+0

使用UnityEngine.UI添加''在頂部,這可能會有所幫助 – Catwood

回答

-1

好的,謝謝大家的幫助,但我找到了我的問題的答案。基於本教程https://www.youtube.com/watch?v=kQ2Qc_0MIyI我創建一個Empty GameObgect,我叫_manager和我分配了此腳本:

using UnityEngine; 
using System.Collections; 

public class csScript : MonoBehaviour { 

     public void ChangeToScene (int sceneToChangeTo) { 
      if (sceneToChangeTo == 0) { 
       Application.Quit(); 
      } 
       else 
      { 
       Application.LoadLevel (sceneToChangeTo); 
      } 

     } 

    } 

然後我選擇的對象_manager和使用0作爲輸入sceneToChangeTo(int)功能我Button_EXIT

+0

這不是一個解決方案。您應該按通常的方式添加按鈕。你原來的代碼唯一的問題是void OnClick()是私有的,所以不能在Button組件的OnClick事件中聲明。將其更改爲public void OnClick()將使您可以將其添加到按鈕。我會爲你添加一個示例項目。 –

0

我找到這個疑難問題的半溶液中使用這個腳本,可以讓我離開時,我按下逃生按鈕。

using UnityEngine; 
using System.Collections; 

public class NewBehaviourScript : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 
     if (Input.GetKey("escape")) 
      Application.Quit(); 
    } 

    // Update is called once per frame 
    void Update() { 
     if (Input.GetKey("escape")) 
      Application.Quit(); 
    } 
} 
0

你的腳本假設調用方法OnClick會奇蹟般地檢測到點擊,但事實並非如此。

您需要將菜單管理器腳本添加到場景中,從而將公共方法綁定到Button組件。

這裏設置您需要: Button setup

MenuManager連接到MenuManager遊戲對象的腳本: Menu Manager Setup

在MenuManager腳本的代碼是真正簡單:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class MenuManager : MonoBehaviour { 

    public void ExitNow() 
    { 
     Application.Quit(); 
    } 

} 

我上傳了一個fully functional implementation here的包。