Files
HauntedBloodlines/Assets/Editor/GradualActivatorControllerEditor.cs
2025-05-29 22:31:40 +03:00

49 lines
1.7 KiB
C#

using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(GradualActivatorController))]
public class GradualActivatorControllerEditor : Editor
{
public override void OnInspectorGUI()
{
serializedObject.Update();
GradualActivatorController controller = (GradualActivatorController)target;
EditorGUILayout.LabelField("Gradual Activators Settings", EditorStyles.boldLabel);
EditorGUILayout.Space();
SerializedProperty activatorsProp = serializedObject.FindProperty("activators");
for (int i = 0; i < activatorsProp.arraySize; i++)
{
SerializedProperty entry = activatorsProp.GetArrayElementAtIndex(i);
SerializedProperty activatorProp = entry.FindPropertyRelative("gradualActivator");
SerializedProperty activateProp = entry.FindPropertyRelative("activate");
EditorGUILayout.BeginVertical("box");
EditorGUILayout.PropertyField(activatorProp, new GUIContent($"Activator {i + 1}"));
if (activatorProp.objectReferenceValue != null)
{
activateProp.boolValue = EditorGUILayout.Popup(
"Action",
activateProp.boolValue ? 0 : 1,
new[] { "Activate", "Deactivate" }
) == 0;
}
EditorGUILayout.EndVertical();
}
if (GUILayout.Button("Add Activator"))
{
activatorsProp.arraySize++;
}
EditorGUILayout.Space();
EditorGUILayout.PropertyField(serializedObject.FindProperty("delayBetweenActivators"), new GUIContent("Delay Between Activators"));
serializedObject.ApplyModifiedProperties();
}
}