2015-10-13 21 views
0

我將一個腳本附加到我的畫布上,名爲PauseMenu,該腳本運行一次並最初暫停並恢復,但不會再次在單擊轉義時暫停。這裏是我的代碼:當我運行一個附加到我的畫布上的腳本來彈出一個暫停菜單時,它只運行一次

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 
#if UNITY_EDITOR 
using UnityEditor; 
#endif 
using RTS; 

public class PauseMenu : MonoBehaviour { 

Canvas canvas; 
private Player player; 
public Button Button2; 


void Start() 
{ 
    Debug.Log ("asdf"); 
    player = transform.root.GetComponent<Player>(); 
    canvas = GetComponent<Canvas>(); 
    canvas.enabled = false; 
    ResourceManager.MenuOpen = false; 
    Button2.GetComponent<Button>().onClick.AddListener(() => { Resume();}); 
} 

void Update() 
{ 
    Debug.Log ("Jake"); 
    if(Input.GetKeyDown(KeyCode.Escape) && ResourceManager.MenuOpen == false) Pause(); 
    //Button2.GetComponent<Button>().onClick.AddListener(() => { Resume();}); 
    //if(Input.GetKeyDown(KeyCode.Escape)) Pause(); 
    //if(Input.GetKeyDown(KeyCode.Escape) && ResourceManager.MenuOpen == true) Resume(); 
} 

public void Pause() 
{ 
    //if(Event.current.type == KeyCode.Escape)Debug.Log ("as12d12f2"); 
    //if(Event.current.type == EventType.KeyDown)Debug.Log ("as12d12f2"); 
    Debug.Log ("asdf2"); 
    canvas.enabled = true; 
    Time.timeScale = 0.0f; 
    if(player) player.GetComponent<UserInput>().enabled = false; 
    //canvas.enabled = !canvas.enabled; 
    //Time.timeScale = Time.timeScale == 0 ? 1 : 0; 
    //ResourceManager.MenuOpen = true; 
} 

public void ResumePublic(){ 
    Resume(); 
    } 

private void Resume() { 
    Debug.Log ("asdf1"); 
    Time.timeScale = 1.0f; 
    GetComponent<PauseMenu>().enabled = false; 
    if(player) player.GetComponent<UserInput>().enabled = true; 
    Cursor.visible = false; 
    canvas.enabled = false; 
    //Screen.showCursor = false; 
    //GetComponent<UserInput >().enabled = true; 
    Debug.Log ("a2323sdf1"); 
    ResourceManager.MenuOpen = false; 
    Button2.GetComponent<Button>().onClick.AddListener(() => { Resume();}); 
} 

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

正在發生的事情是,這是連接到具有己子對象button1,2and3子對象面板中的父對象畫布。並且當用戶按下轉義時,應該彈出菜單,暫停時間(它所做的)並且當按下恢復按鈕(按鈕2)或按下轉義按鈕時恢復,但是這隻能工作一次並且代碼不再運行(即更新程序不再運行) - 請有人可以幫我解決這個問題。

回答

0

在你的簡歷()設置的PauseMenu組件爲假

GetComponent<PauseMenu>().enabled = false; 

但是你沒有什麼回頭該組件在你的暫停功能。所以腳本在第一次切換後會被禁用,並且不會再次運行。

難道這是問題嗎?

+0

謝謝:)愚蠢的我不看它 – Nightshade

相關問題