2025-01-30 23:38:06 +01:00

89 lines
3.0 KiB
C#

#if UNITY_EDITOR
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
namespace DamageNumbersPro.Internal
{
[CustomEditor(typeof(DNPPreset))]
public class DNPPresetEditor : Editor
{
public override void OnInspectorGUI()
{
//Prepare:
GUIStyle labelStyle = new GUIStyle(GUI.skin.label);
labelStyle.richText = true;
//Copying:
EditorGUILayout.Space(4);
DamageNumber dn = (DamageNumber) EditorGUILayout.ObjectField(null, typeof(DamageNumber), true,GUILayout.Height(80));
GUIStyle dropStyle = new GUIStyle(GUI.skin.box);
dropStyle.alignment = TextAnchor.MiddleCenter;
Rect lastRect = GUILayoutUtility.GetLastRect();
GUI.Box(lastRect, "Drop damage number here.", dropStyle);
if(dn != null)
{
DNPPreset preset = (DNPPreset)target;
Undo.RegisterCompleteObjectUndo(preset, "Copied damage number.");
preset.Get(dn);
serializedObject.ApplyModifiedProperties();
}
//Get First Property:
SerializedProperty currentProperty = serializedObject.FindProperty("changeFontAsset");
//Display Properties:
EditorGUILayout.BeginVertical();
bool visible = true;
do
{
bool isNewCategory = currentProperty.name.StartsWith("change") || currentProperty.name == "hideVerticalTexts";
if (isNewCategory)
{
visible = true;
EditorGUILayout.EndVertical();
EditorGUILayout.Space();
EditorGUILayout.BeginVertical("Helpbox");
}
if(visible)
{
if(isNewCategory)
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.PrefixLabel("<size=14><b>" + currentProperty.displayName + "</b></size>", labelStyle);
EditorGUILayout.PropertyField(currentProperty, GUIContent.none, true);
EditorGUILayout.EndHorizontal();
}
else
{
EditorGUILayout.PropertyField(currentProperty, true);
}
}
if (isNewCategory)
{
visible = currentProperty.boolValue;
if(visible && currentProperty.name.StartsWith("change"))
{
DNPEditorInternal.Lines();
}
}
} while (currentProperty.NextVisible(false));
EditorGUILayout.EndVertical();
//Save Changes:
serializedObject.ApplyModifiedProperties();
}
}
}
#endif