39 lines
1.7 KiB
C#
39 lines
1.7 KiB
C#
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
namespace Passer.Humanoid {
|
|
using Passer.Tracking;
|
|
|
|
[CustomEditor(typeof(RealWorldConfiguration))]
|
|
public class RealWorldConfiguration_Editor : Editor {
|
|
|
|
public override void OnInspectorGUI() {
|
|
serializedObject.Update();
|
|
SerializedProperty trackerList = serializedObject.FindProperty("trackers");
|
|
for (int i = 0; i < trackerList.arraySize; i++) {
|
|
SerializedProperty trackerProp = trackerList.GetArrayElementAtIndex(i);
|
|
|
|
TrackingSpaceInspector(trackerProp);
|
|
}
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
bool foldout = true;
|
|
protected virtual void TrackingSpaceInspector(SerializedProperty trackerProp) {
|
|
SerializedProperty trackerIdProp = trackerProp.FindPropertyRelative("trackerId");
|
|
TrackerId trackerId = (TrackerId) trackerIdProp.intValue;
|
|
foldout = EditorGUILayout.Foldout(foldout, trackerId.ToString());
|
|
if (foldout) {
|
|
EditorGUI.indentLevel++;
|
|
SerializedProperty positionProp = trackerProp.FindPropertyRelative("position");
|
|
positionProp.vector3Value = EditorGUILayout.Vector3Field("Position", positionProp.vector3Value);
|
|
|
|
SerializedProperty rotationProp = trackerProp.FindPropertyRelative("rotation");
|
|
Vector3 angles = rotationProp.quaternionValue.eulerAngles;
|
|
angles = EditorGUILayout.Vector3Field("Rotation", angles);
|
|
rotationProp.quaternionValue = Quaternion.Euler(angles);
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
}
|
|
}
|
|
} |