55 lines
1.5 KiB
C#
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();
|
|
}
|
|
} |