Как запустить метод после вызова метода OnGUI() в EditorWindow?
Тут нашёл порядок выполнения функций событий. Но так и не понял как запустить метод, после события отрисовки GUI (void OnGUI (){}).
#if UNITY_EDITOR
public class Main : EditorWindow {
[MenuItem ("Window/Panorama Terrain Tools")]
public static void ShowWindow () {
m_WindowMain = (Main) GetCustomWindow (true);
// if(Main.m_WindowMain == null) { Main.m_WindowMain = (Main) Main.GetCustomWindow (true); }
m_WindowMain.Show ();
}
public static Main GetCustomWindow (bool focus) {
return GetWindow<Main> ("Работа с объектами и terrain", focus);
}
void OnEnable () {
}
void OnGUI () {
...
}
void SomeMethod(){
Debug.Log("метод который надо вызывать после метода void OnGUI () {}");
}
}
#endif
Ответы (1 шт):
Автор решения: RiotBr3aker
→ Ссылка
Можно сделать через события и отписку после первого срабатывания:
public abstract class ExtendedEditorWindow : EditorWindow {
public event Action OnAfterDrawingGUI;
private void OnGUI () {
DrawContents();
OnAfterDrawingGUI?.Invoke();
}
protected abstract void DrawContents();
}
public class MyWindow : ExtendedEditorWindow {
private void OnEnable() {
OnAfterDrawingGUI += SomeMethod;
}
protected override void DrawContents() {
// Drawing contents
}
private void SomeMethod() {
// отписываемся после первого срабатывания
OnAfterDrawingGUI -= SomeMethod;
Debug.Log("SomeMethod()");
}
}