com.alicizax.unity.ui.exten.../Editor/Helper/GUILayoutHelper.cs

115 lines
4.0 KiB
C#
Raw Normal View History

2025-07-25 20:11:27 +08:00
using System;
using UnityEditor;
using UnityEngine;
2025-07-25 20:08:46 +08:00
2025-07-25 20:11:27 +08:00
namespace AlicizaX.UI.Extension.Editor
{
2025-07-28 20:52:34 +08:00
internal class GUILayoutHelper
2025-07-25 20:08:46 +08:00
{
public static void DrawProperty(SerializedProperty property, GUISkin skin, string content)
{
GUILayout.BeginHorizontal(EditorStyles.helpBox);
EditorGUILayout.LabelField(new GUIContent(content), skin.FindStyle("Text"), GUILayout.Width(120));
EditorGUILayout.PropertyField(property, new GUIContent(""));
GUILayout.EndHorizontal();
}
public static void DrawProperty(SerializedProperty property, GUISkin skin, string content, string btnName, Action callback)
{
GUILayout.BeginHorizontal(EditorStyles.helpBox);
if (GUILayout.Button(btnName))
{
callback?.Invoke();
}
EditorGUILayout.LabelField(new GUIContent(content), skin.FindStyle("Text"), GUILayout.Width(120));
EditorGUILayout.PropertyField(property, new GUIContent(""));
GUILayout.EndHorizontal();
}
public static void DrawPropertyPlain(SerializedProperty property, GUISkin skin, string content)
{
GUILayout.BeginHorizontal();
EditorGUILayout.LabelField(new GUIContent(content), skin.FindStyle("Text"), GUILayout.Width(120));
EditorGUILayout.PropertyField(property, new GUIContent(""));
GUILayout.EndHorizontal();
}
public static void DrawPropertyCW(SerializedProperty property, GUISkin skin, string content, float width)
{
GUILayout.BeginHorizontal(EditorStyles.helpBox);
EditorGUILayout.LabelField(new GUIContent(content), skin.FindStyle("Text"), GUILayout.Width(width));
EditorGUILayout.PropertyField(property, new GUIContent(""));
GUILayout.EndHorizontal();
}
public static void DrawPropertyPlainCW(SerializedProperty property, GUISkin skin, string content, float width)
{
GUILayout.BeginHorizontal();
EditorGUILayout.LabelField(new GUIContent(content), skin.FindStyle("Text"), GUILayout.Width(width));
EditorGUILayout.PropertyField(property, new GUIContent(""));
GUILayout.EndHorizontal();
}
public static int DrawTabs(int tabIndex, GUIContent[] tabs, GUISkin skin)
{
GUILayout.BeginHorizontal();
GUILayout.Space(17);
tabIndex = GUILayout.Toolbar(tabIndex, tabs, skin.FindStyle("Tab Indicator"));
GUILayout.EndHorizontal();
GUILayout.Space(-40);
GUILayout.BeginHorizontal();
GUILayout.Space(17);
return tabIndex;
}
public static void DrawComponentHeader(GUISkin skin, string content)
{
GUILayout.BeginHorizontal();
GUILayout.Box(new GUIContent(""), skin.FindStyle(content));
GUILayout.EndHorizontal();
GUILayout.Space(-42);
}
public static void DrawHeader(GUISkin skin, string content, int space)
{
GUILayout.Space(space);
GUILayout.Box(new GUIContent(""), skin.FindStyle(content));
}
public static bool DrawToggle(bool value, GUISkin skin, string content)
{
GUILayout.BeginHorizontal(EditorStyles.helpBox);
value = GUILayout.Toggle(value, new GUIContent(content), skin.FindStyle("Toggle"));
value = GUILayout.Toggle(value, new GUIContent(""), skin.FindStyle("Toggle Helper"));
GUILayout.EndHorizontal();
return value;
}
public static bool DrawTogglePlain(bool value, GUISkin skin, string content)
{
GUILayout.BeginHorizontal();
value = GUILayout.Toggle(value, new GUIContent(content), skin.FindStyle("Toggle"));
value = GUILayout.Toggle(value, new GUIContent(""), skin.FindStyle("Toggle Helper"));
GUILayout.EndHorizontal();
return value;
}
}
}