74 lines
2.5 KiB
C#
74 lines
2.5 KiB
C#
|
|
using UnityEditor;
|
||
|
|
using UnityEngine;
|
||
|
|
using AlicizaX.UI;
|
||
|
|
using AlicizaX.UI.Runtime;
|
||
|
|
|
||
|
|
[CustomEditor(typeof(UXController))]
|
||
|
|
public class UXControllerEditor : Editor
|
||
|
|
{
|
||
|
|
private SerializedProperty _controllersProp;
|
||
|
|
|
||
|
|
private void OnEnable()
|
||
|
|
{
|
||
|
|
_controllersProp = serializedObject.FindProperty("_controllers");
|
||
|
|
}
|
||
|
|
|
||
|
|
public override void OnInspectorGUI()
|
||
|
|
{
|
||
|
|
serializedObject.Update();
|
||
|
|
|
||
|
|
EditorGUILayout.LabelField("UX Controller", EditorStyles.boldLabel);
|
||
|
|
EditorGUILayout.Space();
|
||
|
|
EditorGUI.BeginDisabledGroup(true);
|
||
|
|
|
||
|
|
for (int i = 0; i < _controllersProp.arraySize; i++)
|
||
|
|
{
|
||
|
|
var el = _controllersProp.GetArrayElementAtIndex(i);
|
||
|
|
var nameProp = el.FindPropertyRelative("Name");
|
||
|
|
var lengthProp = el.FindPropertyRelative("Length");
|
||
|
|
|
||
|
|
EditorGUILayout.BeginVertical("box");
|
||
|
|
EditorGUILayout.BeginHorizontal();
|
||
|
|
EditorGUILayout.LabelField($"[{i}]", GUILayout.Width(30));
|
||
|
|
nameProp.stringValue = EditorGUILayout.TextField(nameProp.stringValue);
|
||
|
|
if (GUILayout.Button("Remove", GUILayout.Width(70)))
|
||
|
|
{
|
||
|
|
_controllersProp.DeleteArrayElementAtIndex(i);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
EditorGUILayout.EndHorizontal();
|
||
|
|
|
||
|
|
EditorGUILayout.BeginHorizontal();
|
||
|
|
EditorGUILayout.LabelField("Length", GUILayout.Width(50));
|
||
|
|
lengthProp.intValue = Mathf.Max(1, EditorGUILayout.IntField(lengthProp.intValue));
|
||
|
|
EditorGUILayout.EndHorizontal();
|
||
|
|
|
||
|
|
|
||
|
|
var ux = target as UXController;
|
||
|
|
if (ux != null && ux.Controllers != null && i < ux.Controllers.Count)
|
||
|
|
{
|
||
|
|
EditorGUILayout.LabelField("CurrentIndex", ux.Controllers[i].CurrentIndex.ToString());
|
||
|
|
}
|
||
|
|
|
||
|
|
EditorGUILayout.EndVertical();
|
||
|
|
EditorGUILayout.Space();
|
||
|
|
}
|
||
|
|
|
||
|
|
var controller = target as UXController;
|
||
|
|
using (new EditorGUILayout.VerticalScope("Box"))
|
||
|
|
{
|
||
|
|
foreach (var recorder in controller.Recorders)
|
||
|
|
{
|
||
|
|
EditorGUILayout.BeginHorizontal();
|
||
|
|
EditorGUILayout.LabelField($"ID:{recorder.ID}", EditorStyles.helpBox);
|
||
|
|
EditorGUILayout.ObjectField(recorder, typeof(UXControllerStateRecorder), true);
|
||
|
|
EditorGUILayout.EndHorizontal();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
EditorGUI.EndDisabledGroup();
|
||
|
|
serializedObject.ApplyModifiedProperties();
|
||
|
|
}
|
||
|
|
}
|