2015-06-11 2 views
1

Есть ли способ обнаружить, когда окно GUI было закрыто? Я создаю инструмент редактора, и мне нужно выполнить некоторые действия после закрытия окна. В идеале, если есть обратный вызов или событие, которое уведомляет меня, это будет идеально. Я много искал, но ничего не нашел. Возможно, что я тоже ищу неправильное ключевое слово. Есть ли работа вокруг? Любая помощь приветствуется. Благодаря!Обнаружение окна графического интерфейса пользователя в единстве

ответ

3

Полный исходный код и исходное сообщение можно найти here:

Вы можете попробовать использовать булево свойство фальсифицировать закрытие окна/открыть эффект, когда сеттера называется, некоторые функции OnWindowClosed() это дозвонились:

Проверено на Mac OSX: enter image description here

bool _bWindowActive; 
public bool bWindowActive { 
    get { return _bWindowActive;} 
    set { 
     _bWindowActive = value; 
     if (!bWindowActive) { 
      //This is called everytime, when bWindowActive = false; 
      OnWindowClosed(); 
     } 
    } 
} 

public void OnWindowClosed() 
{ 
    Debug.Log ("Windows Closed"); 
} 

public void OnGUI() { 

    if (GUI.Button (new Rect (10, 20, 100, 20), "Show Window")) 
     bWindowActive = true; 
    if (GUI.Button (new Rect (10,60,100,20), "Close Window")) 
     bWindowActive = false; 

    if (bWindowActive) { 
     GUI.Window (0, new Rect(200, 10, 200, 200), DoMyWindow, "My Window"); 
    } 
} 

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

Привет, Солу выглядит великолепно. Но в этом случае вы создали пользовательскую кнопку. Но любая идея, как я мог бы связать это с традиционной (x) кнопкой, которая появляется в верхнем правом углу окна редактора. Я разрабатываю этот инструмент для художников. Поэтому я хочу сохранить его максимально простым. Else Мне нужно просто создать пользовательскую кнопку и использовать ее для закрытия. – Aadithya

+0

На самом деле я нашел EditorWindow.OnDestory(), которого я не смог в течение всего вчерашнего дня. Но мне действительно понравилось ваше решение - интересный способ сделать это. Благодаря! – Aadithya

Смежные вопросы