51 lines
2.0 KiB
C#
51 lines
2.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
namespace Passer.Humanoid {
|
|
using Passer.Tracking;
|
|
|
|
[CustomEditor(typeof(Passer.Tracking.Oculus))]
|
|
public class OculusTracker_Editor : Editor {
|
|
|
|
public override void OnInspectorGUI() {
|
|
serializedObject.Update();
|
|
|
|
PersistentTrackingInspector();
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
protected virtual void PersistentTrackingInspector() {
|
|
SerializedProperty persistentTrackingProp = serializedObject.FindProperty("persistentTracking");
|
|
persistentTrackingProp.boolValue = EditorGUILayout.Toggle("Persistent Tracking", persistentTrackingProp.boolValue);
|
|
|
|
if (persistentTrackingProp.boolValue) {
|
|
EditorGUI.indentLevel++;
|
|
RealWorldConfigurationInspector();
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
}
|
|
|
|
protected virtual void RealWorldConfigurationInspector() {
|
|
SerializedProperty realWorldConfigurationProp = serializedObject.FindProperty("realWorldConfiguration");
|
|
EditorGUILayout.ObjectField(realWorldConfigurationProp);
|
|
RealWorldConfiguration configuration = (RealWorldConfiguration)realWorldConfigurationProp.objectReferenceValue;
|
|
|
|
if (configuration == null) {
|
|
EditorGUILayout.HelpBox("Real World Configuration is required for persistent Tracking", MessageType.Warning);
|
|
return;
|
|
}
|
|
|
|
RealWorldConfiguration.TrackingSpace trackingSpace =
|
|
configuration.trackers.Find(space => space.trackerId == TrackerId.Oculus);
|
|
if (trackingSpace == null)
|
|
return;
|
|
|
|
Passer.Tracking.Oculus tracker = (Passer.Tracking.Oculus) serializedObject.targetObject;
|
|
tracker.transform.position = trackingSpace.position;
|
|
tracker.transform.rotation = trackingSpace.rotation;
|
|
}
|
|
}
|
|
} |