49 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|