using AibisDream.Framework; using UnityEditor; using UnityEngine; namespace AibisDream.SystemEditor { [CustomEditor(typeof(SystemHasData), true)] public class SystemHasDataEditor : Editor { private int _selectedIndex; private string _inputText = ""; public override void OnInspectorGUI() { // 获取目标对象 SystemHasData example = (SystemHasData)target; // 绘制默认的 Inspector DrawDefaultInspector(); GUILayout.Label("数据加载与保存"); // 绘制下拉选择和输入框 EditorGUILayout.BeginHorizontal(); int newIndex = EditorGUILayout.Popup(_selectedIndex, example.GetDataKeyOptions()); _inputText = EditorGUILayout.TextField(_inputText); EditorGUILayout.EndHorizontal(); if (newIndex != _selectedIndex) { _selectedIndex = newIndex; _inputText = example.GetDataKeyOptions()[newIndex]; } // 保存按钮 if (GUILayout.Button("保存")) { Undo.RecordObject(example, "Save Input Value"); example.CurDataKey = _inputText; example.Save(); Debug.Log("Saved: " + _inputText); } // 加载按钮 if (GUILayout.Button("加载")) { example.CurDataKey = _inputText; _selectedIndex = System.Array.IndexOf(example.GetDataKeyOptions(), _inputText); if (_selectedIndex < 0) _selectedIndex = 0; example.Load(); Debug.Log("Loaded: " + _inputText); } } } }