2013-11-26 161 views
1
var note : String = "blah" 

function OnGUI() 
{ 

    if (IsPaused) 
    { 

     GUI.Box (Rect (580,20,100,210), "Pause"); 


     if (GUI.Button (Rect (590,130,80,20), "Info")) 
     { 
      Debug.Log("I pressed it"); 
      GUI.Button (Rect (450, 200, Screen.width/2, Screen.height/2), info); 

     } 


     else if (GUI.Button (Rect (590,160,80,20), "Quit")) 
     { 

      Application.Quit(); 

     } 



     else if(GUI.Button (Rect(590,190,80,35), "Back")) 
     { 

      IsPaused = false; 

      GetComponent(LookAtMouse).enabled = true; 

     } 

} 

這是我的GUI功能,你可以看到,我有三個按鈕。退出和後退按鈕工作正常,但是當我點擊信息按鈕時,什麼都不會註冊。鼠標按鈕單擊不會註冊

我把GUI.Button (Rect (450, 200, Screen.width/2, Screen.height/2), info);這行代碼放在if語句之外來檢查它是否有效,但是當它在語句裏面時我什麼也得不到。

有誰能告訴我爲什麼?

+0

熊切換請注意,GUI是以「即時」模式繪製的:如果您希望在每個框架中都顯示一個按鈕,則需要每幀繪製一個按鈕。同時,'GUI.Button'僅在按下時返回true。你可能有更好的運氣緩存一些布爾標誌來控制某些UI元素的顯示。 – rutter

+0

請不要在您的問題中使用冒犯性語言。 – Jerdak

回答

0
var displayInfo : boolean = false; 


if (IsPaused) 
     { 

      GUI.Box (Rect (580,20,100,210), "Pause"); 


      displayInfo = GUI.Toggle(Rect (590,130,80,20), displayInfo, "Info"); 

      { 
       if(displayInfo) 
       { 
        GUI.Button (Rect (450, 200, Screen.width/2, Screen.height/2), info); 
       } 

      } 

@rutter感謝您的想法,我用你有想法布爾並創建了一個撥動來檢查,如果顯示的信息,創建文本字段的情況下,當它在