initial commit
This commit is contained in:
parent
6715289efe
commit
788c3389af
37645 changed files with 2526849 additions and 80 deletions
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ab51dfc975464354d9f0d2205097fa04
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
using UnityEditor;
|
||||
|
||||
namespace UnityEngine.SpatialTracking
|
||||
{
|
||||
// TODO: If this Editor class is ever made public, fix the namespace to be UnityEditor.SpatialTracking, not UnityEngine.SpatialTracking
|
||||
[CustomEditor(typeof(TrackedPoseDriver))]
|
||||
internal class TrackedPoseDriverEditor : Editor
|
||||
{
|
||||
static class Styles
|
||||
{
|
||||
public static GUIContent deviceLabel = EditorGUIUtility.TrTextContent("Device", "The Device to read tracking data from");
|
||||
public static GUIContent poseLabel = EditorGUIUtility.TrTextContent("Pose Source", "The end point on the device to read tracking data from");
|
||||
public static GUIContent trackingLabel = EditorGUIUtility.TrTextContent("Tracking Type", "Whether Rotation or Position, or Both are applied from the source pose");
|
||||
public static GUIContent updateLabel = EditorGUIUtility.TrTextContent("Update Type", "Whether the Tracked Pose Driver updates in update, and/or just before rendering");
|
||||
public static GUIContent relativeLabel = EditorGUIUtility.TrTextContent("Use Relative Transform", "When this is set, the Tracked Pose Driver will use the original position of the object as a reference. This option will be deprecated in future releases");
|
||||
public static GUIContent poseProviderLabel = EditorGUIUtility.TrTextContent("Use Pose Provider", "[Optional] when a PoseProvider object is attached here, the pose provider will be used as the data source, not the Device/Pose settings on the Tracked Pose Driver");
|
||||
public static readonly string poseProviderWarning = "This Tracked Pose Driver is using an external component as its Pose Source.";
|
||||
public static readonly string devicePropWarning = "The selected Pose Source is not valid, please pick a different pose";
|
||||
public static readonly string cameraWarning = "The Tracked Pose Driver is attached to a Camera, but is not tracking the Center Eye / HMD Reference. This may cause tracking problems if this Camera is intended to track the headset.";
|
||||
}
|
||||
|
||||
SerializedProperty m_DeviceProp = null;
|
||||
SerializedProperty m_PoseLabelProp = null;
|
||||
SerializedProperty m_TrackingTypeProp = null;
|
||||
SerializedProperty m_UpdateTypeProp = null;
|
||||
SerializedProperty m_UseRelativeTransformProp = null;
|
||||
SerializedProperty m_PoseProviderProp = null;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
m_DeviceProp = this.serializedObject.FindProperty("m_Device");
|
||||
m_PoseLabelProp = this.serializedObject.FindProperty("m_PoseSource");
|
||||
m_TrackingTypeProp = this.serializedObject.FindProperty("m_TrackingType");
|
||||
m_UpdateTypeProp = this.serializedObject.FindProperty("m_UpdateType");
|
||||
m_UseRelativeTransformProp = this.serializedObject.FindProperty("m_UseRelativeTransform");
|
||||
m_PoseProviderProp = this.serializedObject.FindProperty("m_PoseProviderComponent");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
TrackedPoseDriver tpd = target as TrackedPoseDriver;
|
||||
serializedObject.Update();
|
||||
|
||||
if (m_PoseProviderProp.objectReferenceValue == null)
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_DeviceProp, Styles.deviceLabel);
|
||||
|
||||
int selectedIndex = -1;
|
||||
for (int i = 0; i < TrackedPoseDriverDataDescription.DeviceData[m_DeviceProp.enumValueIndex].Poses.Count; ++i)
|
||||
{
|
||||
if ((int)TrackedPoseDriverDataDescription.DeviceData[m_DeviceProp.enumValueIndex].Poses[i] == m_PoseLabelProp.enumValueIndex)
|
||||
{
|
||||
selectedIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Rect rect = EditorGUILayout.GetControlRect();
|
||||
EditorGUI.LabelField(rect, Styles.poseLabel);
|
||||
rect.xMin += EditorGUIUtility.labelWidth;
|
||||
|
||||
if (selectedIndex != -1)
|
||||
{
|
||||
int index = EditorGUI.Popup(rect, selectedIndex, TrackedPoseDriverDataDescription.DeviceData[m_DeviceProp.enumValueIndex].PoseNames.ToArray());
|
||||
m_PoseLabelProp.enumValueIndex = (int)TrackedPoseDriverDataDescription.DeviceData[m_DeviceProp.enumValueIndex].Poses[index];
|
||||
if(tpd &&
|
||||
(m_DeviceProp.enumValueIndex == 0 &&
|
||||
(m_PoseLabelProp.enumValueIndex != (int)(TrackedPoseDriver.TrackedPose.Center)) &&
|
||||
(m_PoseLabelProp.enumValueIndex != (int)TrackedPoseDriver.TrackedPose.ColorCamera)))
|
||||
{
|
||||
Camera camera = tpd.GetComponent<Camera>();
|
||||
if (camera != null)
|
||||
{
|
||||
EditorGUILayout.HelpBox(Styles.cameraWarning, MessageType.Warning, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = EditorGUI.Popup(rect, 0, TrackedPoseDriverDataDescription.DeviceData[m_DeviceProp.enumValueIndex].PoseNames.ToArray());
|
||||
m_PoseLabelProp.enumValueIndex = (int)TrackedPoseDriverDataDescription.DeviceData[m_DeviceProp.enumValueIndex].Poses[index];
|
||||
EditorGUILayout.HelpBox(Styles.devicePropWarning, MessageType.Warning, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.HelpBox(Styles.poseProviderWarning, MessageType.Info, true);
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(m_TrackingTypeProp, Styles.trackingLabel);
|
||||
EditorGUILayout.PropertyField(m_UpdateTypeProp, Styles.updateLabel);
|
||||
EditorGUILayout.PropertyField(m_UseRelativeTransformProp, Styles.relativeLabel);
|
||||
|
||||
EditorGUILayout.PropertyField(m_PoseProviderProp, Styles.poseProviderLabel);
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 89c097ec5a9e1d0409a12d54380028f9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "UnityEditor.SpatialTracking",
|
||||
"references": [
|
||||
"UnityEngine.SpatialTracking"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [
|
||||
{
|
||||
"name": "com.unity.xr.management",
|
||||
"expression": "1.0.0",
|
||||
"define": "XR_MANAGEMENT"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b13a1d1dfb13f1b489a0ff5612f36f29
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Add table
Add a link
Reference in a new issue