Files
aibis-dream/Assets/Editor/Script/SystemHasDataEditor.cs
T
2024-11-30 08:04:03 +08:00

54 lines
1.7 KiB
C#

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);
}
}
}
}