Files
XericLibrary-Publish/Editor/UI/CircleSliderEditor.cs
2025-04-10 15:32:00 +08:00

73 lines
2.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Deconstruction.Runtime.UI;
using UnityEditor;
using UnityEditor.UI;
using UnityEngine;
namespace Deconstruction.Editor.UI
{
[CustomEditor(typeof(CircleSlider) , true)]
public class CircleSliderEditor : SelectableEditor
{
private SerializedProperty m_Value;
private SerializedProperty FillOrigin;
private SerializedProperty m_MaxValue;
private SerializedProperty m_MinValue;
private SerializedProperty m_FillRect;
private SerializedProperty m_HandleRect;
private SerializedProperty m_FillOrigin;
private SerializedProperty m_Radius;
private SerializedProperty m_ClockWise;
// private SerializedProperty m_MaxAngle;
// private SerializedProperty m_MinAngle;
private SerializedProperty m_WholeNumbers;
protected override void OnEnable()
{
base.OnEnable();
m_FillRect = serializedObject.FindProperty("m_FillRect");
m_HandleRect = serializedObject.FindProperty("m_HandleRect");
m_MinValue = serializedObject.FindProperty("m_MinValue");
m_MaxValue = serializedObject.FindProperty("m_MaxValue");
m_Value = serializedObject.FindProperty("m_Value");
m_FillOrigin = serializedObject.FindProperty("m_FillOrigin");
m_Radius = serializedObject.FindProperty("m_Radius");
m_ClockWise = serializedObject.FindProperty("m_ClockWise");
m_WholeNumbers = serializedObject.FindProperty("m_WholeNumbers");
// m_MaxAngle = serializedObject.FindProperty("m_MaxAngle");
// m_MinAngle = serializedObject.FindProperty("m_MinAngle");
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
serializedObject.Update();
EditorGUILayout.PropertyField(m_FillRect);
EditorGUILayout.PropertyField(m_HandleRect);
if (m_FillRect.objectReferenceValue != null )
{
EditorGUILayout.PropertyField(m_MinValue);
EditorGUILayout.PropertyField(m_MaxValue);
EditorGUILayout.PropertyField(m_WholeNumbers);
EditorGUILayout.Slider(m_Value, m_MinValue.floatValue, m_MaxValue.floatValue);
EditorGUILayout.PropertyField(m_FillOrigin);
EditorGUILayout.PropertyField(m_ClockWise);
}
if (m_HandleRect.objectReferenceValue != null)
{
EditorGUILayout.PropertyField(m_Radius);
}
serializedObject.ApplyModifiedProperties();
}
}
}