using UnityEditor; using UnityEngine; using System; namespace TapjoyEditor { public class EDMSelectionEditorWindow : EditorWindow { private int selectedVersionIndex = 0; private Action onVersionSelected; private bool callbackInvoked = false; private string[] versions; public static void ShowWindow(Action onVersionSelectedCallback, string[] versions) { EDMSelectionEditorWindow window = GetWindow("Select Version"); window.onVersionSelected = onVersionSelectedCallback; window.versions = versions; window.ShowUtility(); } private void OnGUI() { GUILayout.Label("Select the Unity External Dependency Manager version to install:", EditorStyles.boldLabel); selectedVersionIndex = EditorGUILayout.Popup("Version:", selectedVersionIndex, versions); GUILayout.Space(20); GUILayout.BeginHorizontal(); if (GUILayout.Button("Ok")) { string selectedVersion = versions[selectedVersionIndex]; InvokeCallback(selectedVersion); Close(); } if (GUILayout.Button("Cancel")) { InvokeCallback(null); Close(); } GUILayout.EndHorizontal(); } private void OnDestroy() { if (!callbackInvoked) { InvokeCallback(null); } } private void InvokeCallback(string version = null) { if (!callbackInvoked) { callbackInvoked = true; if (version == null) { version = string.Empty; } onVersionSelected?.Invoke(version); } } } }