RiftMayhem/Assets/MonoBehaviourTree/Source/Editor/NumberConditionEditor.cs
2024-06-23 19:12:22 +01:00

67 lines
2.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using MBT;
namespace MBTEditor
{
[CustomEditor(typeof(NumberCondition))]
public class NumberConditionEditor : Editor
{
SerializedProperty titleProp;
SerializedProperty abortProp;
SerializedProperty floatReferenceProp;
SerializedProperty intReferenceProp;
SerializedProperty floatReference2Prop;
SerializedProperty intReference2Prop;
SerializedProperty typeProp;
SerializedProperty comparatorProp;
void OnEnable()
{
titleProp = serializedObject.FindProperty("title");
floatReferenceProp = serializedObject.FindProperty("floatReference");
intReferenceProp = serializedObject.FindProperty("intReference");
floatReference2Prop = serializedObject.FindProperty("floatReference2");
intReference2Prop = serializedObject.FindProperty("intReference2");
abortProp = serializedObject.FindProperty("abort");
typeProp = serializedObject.FindProperty("type");
comparatorProp = serializedObject.FindProperty("comparator");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(titleProp);
EditorGUILayout.PropertyField(abortProp);
EditorGUILayout.PropertyField(typeProp);
EditorGUILayout.Space();
// GUILayout.Label("Condition");
if (typeProp.enumValueIndex == (int)NumberCondition.Type.Float)
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.PropertyField(floatReferenceProp, GUIContent.none);
EditorGUILayout.PropertyField(comparatorProp, GUIContent.none, GUILayout.MaxWidth(60f));
EditorGUILayout.PropertyField(floatReference2Prop, GUIContent.none);
EditorGUILayout.EndHorizontal();
}
else
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.PropertyField(intReferenceProp, GUIContent.none);
EditorGUILayout.PropertyField(comparatorProp, GUIContent.none, GUILayout.MaxWidth(60f));
EditorGUILayout.PropertyField(intReference2Prop, GUIContent.none);
EditorGUILayout.EndHorizontal();
}
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();
}
}
}
}