Files
ft/Client/LocalPackages/TapjoySDK/Editor/EDMSelectionEditorWindow.cs
2026-06-29 21:18:33 +08:00

67 lines
1.9 KiB
C#

using UnityEditor;
using UnityEngine;
using System;
namespace TapjoyEditor
{
public class EDMSelectionEditorWindow : EditorWindow
{
private int selectedVersionIndex = 0;
private Action<string> onVersionSelected;
private bool callbackInvoked = false;
private string[] versions;
public static void ShowWindow(Action<string> onVersionSelectedCallback, string[] versions)
{
EDMSelectionEditorWindow window = GetWindow<EDMSelectionEditorWindow>("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);
}
}
}
}