public void OnWindowDestroyed(WindowRoot windowRoot) { // Remove listener. windowRoot.WindowDestroyed -= this.OnWindowDestroyed; // Check if destroyed by itself. Window window = this.windows.FirstOrDefault(openWindow => openWindow.Root == windowRoot); if (window != null) { this.windows.Remove(window); } else { Debug.LogError("No window found for destroyed window root " + windowRoot.WindowId); } }