2017-06-08 43 views
0

我試圖用一個GUI.ModalWindow阻止用戶在我的場景等物品交互模態,但它仍然可以使用ModalWindow之外的按鈕。GUI.ModalWindow不帶有按鈕

public class ModalDialog : MonoBehaviour 
{ 
    private Rect windowRect = new Rect(100, 130, 220, 100); 

    void OnGUI() 
    { 
     windowRect = GUI.ModalWindow(0, windowRect, DoMyWindow, "My Window"); 
    } 

    void DoMyWindow(int windowID) 
    { 
     if (GUI.Button(new Rect(10, 20, 100, 20), "Hello World")) 
     { 
      print("Got a click"); 
     } 
    } 
} 

與連接到帆布我能點擊屏幕上的兩個按鈕上面的類(從the Unity docs拍攝):

Screen shot showing setup and error

有什麼我已經錯過了?

回答

0

要回答我的問題,我聯繫了統一的支持,並收到了如下答覆:您手動創建,按鈕,文本等分別從GUI創建槽腳本,因爲這些是2個獨立的行爲

UI組件類。所以你得到的行爲是預期的,而不是一個錯誤。

對我來說,這使得ModalWindow的使用有點有限,因爲你不能使用Unity編輯器創建你的UI。

爲了解決我的問題,我放棄了ModalWindow,而是創造了一個Canvas因爲我的根遊戲對象。我添加了一個Panel GameObject作爲畫布的子項,並確保它出現在我所有其他UI元素之上。然後,當面板顯示時,它下面的UI元素不能與之交互。

Scene 
    |- Canvas 
     |- Modal Panel 
     |- UI Button