60 lines
2.2 KiB
C#
60 lines
2.2 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
using UI;
|
|
|
|
namespace UIEditor
|
|
{
|
|
[CustomEditor(typeof(UIManager))]
|
|
public class UIManagerEditor : UnityEditor.Editor
|
|
{
|
|
public override void OnInspectorGUI()
|
|
{
|
|
UIManager manager = (UIManager)target;
|
|
|
|
// Vẽ giao diện mặc định (List screens, sliders...)
|
|
base.OnInspectorGUI();
|
|
|
|
EditorGUILayout.Space(20);
|
|
EditorGUILayout.LabelField("QUICK DASHBOARD", EditorStyles.boldLabel);
|
|
EditorGUILayout.HelpBox("Click các nút dưới đây để xem nhanh giao diện mà không cần Play game.", MessageType.Info);
|
|
|
|
if (manager.screens != null)
|
|
{
|
|
foreach (var screen in manager.screens)
|
|
{
|
|
EditorGUILayout.BeginHorizontal();
|
|
|
|
// Nút bấm để hiện duy nhất màn hình này
|
|
if (GUILayout.Button($"SHOW: {screen.screenName}", GUILayout.Height(30)))
|
|
{
|
|
manager.ShowOnly(screen.screenName);
|
|
EditorUtility.SetDirty(manager); // Lưu trạng thái
|
|
}
|
|
|
|
// Toggle nhanh trạng thái Active
|
|
bool newActive = EditorGUILayout.Toggle(screen.isActive, GUILayout.Width(20));
|
|
if (newActive != screen.isActive)
|
|
{
|
|
screen.isActive = newActive;
|
|
manager.SyncScreens();
|
|
EditorUtility.SetDirty(manager);
|
|
}
|
|
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space(10);
|
|
if (GUILayout.Button("HIDE ALL SCREENS", GUILayout.Height(25)))
|
|
{
|
|
foreach (var s in manager.screens) s.isActive = false;
|
|
manager.SyncScreens();
|
|
EditorUtility.SetDirty(manager);
|
|
}
|
|
|
|
EditorGUILayout.Space(10);
|
|
EditorGUILayout.HelpBox("TIP: Bạn có thể thay đổi Global Opacity ở trên để xem độ mờ của toàn bộ UI.", MessageType.None);
|
|
}
|
|
}
|
|
}
|