/* * @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 _onConfirm; public static void Show(string title, string name, string defaultName, System.Action onConfirm) { var window = CreateInstance(); 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(); } }