55 lines
1.5 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年12月31日 星期三 16:12:59
* @Modify:
*/
using UnityEditor;
using UnityEngine;
public class SaveMapDialog : EditorWindow
{
private string _name;
private string _defaultName;
private System.Action<string> _onConfirm;
public static void Show(string title, string name, string defaultName, System.Action<string> onConfirm)
{
var window = CreateInstance<SaveMapDialog>();
window.titleContent = new GUIContent(title);
window._name = name;
window._defaultName = defaultName;
window._onConfirm = onConfirm;
window.minSize = new Vector2(300, 80);
window.maxSize = new Vector2(300, 80);
window.ShowModalUtility();
}
private void OnGUI()
{
EditorGUILayout.Space(10);
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField(_name, GUILayout.Width(60)); // 改为 _name
_defaultName = EditorGUILayout.TextField(_defaultName); // 用户输入更新到 _defaultName
EditorGUILayout.EndHorizontal();
EditorGUILayout.Space(10);
EditorGUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if (GUILayout.Button("确定", GUILayout.Width(80)))
{
_onConfirm?.Invoke(_defaultName); // 传递用户输入的值
Close();
}
if (GUILayout.Button("取消", GUILayout.Width(80)))
{
Close();
}
GUILayout.FlexibleSpace();
EditorGUILayout.EndHorizontal();
}
}