Skip to content

Commit c35232b

Browse files
authored
Merge pull request #9060 from keveleigh/openxr
Add OpenXR input data providers
2 parents 9792383 + b54a9ea commit c35232b

37 files changed

+5850
-43
lines changed

Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs

+9
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ public class MixedRealityProjectConfiguratorWindow : EditorWindow
2929
{ MRConfig.EyeTrackingCapability, true },
3030
#endif // UNITY_2019_3_OR_NEWER
3131

32+
#if UNITY_2019_3_OR_NEWER
33+
{ MRConfig.NewInputSystem, true },
34+
#endif // UNITY_2019_3_OR_NEWER
35+
3236
// Android Settings
3337
{ MRConfig.AndroidMultiThreadedRendering, true },
3438
{ MRConfig.AndroidMinSdkVersion, true },
@@ -186,6 +190,11 @@ private void RenderConfigurations()
186190
#endif
187191
#endif // UNITY_2019_3_OR_NEWER
188192
RenderToggle(MRConfig.SpatialAwarenessLayer, "Set default Spatial Awareness layer");
193+
194+
#if UNITY_2019_3_OR_NEWER
195+
RenderToggle(MRConfig.NewInputSystem, "Enable old input system for input simulation (won't disable new input system)");
196+
#endif // UNITY_2019_3_OR_NEWER
197+
189198
PromptForAudioSpatializer();
190199
EditorGUILayout.Space();
191200

Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityProjectConfigurator.cs

+31
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public enum Configurations
5353
InternetClientCapability,
5454
#if UNITY_2019_3_OR_NEWER
5555
EyeTrackingCapability,
56+
57+
NewInputSystem,
5658
#endif // UNITY_2019_3_OR_NEWER
5759

5860
// Android Settings
@@ -131,6 +133,14 @@ public bool IsActiveBuildTargetValid()
131133
#if UNITY_2019_3_OR_NEWER
132134
{ Configurations.EyeTrackingCapability, new ConfigGetter(() => GetCapability(PlayerSettings.WSACapability.GazeInput), BuildTarget.WSAPlayer) },
133135
#endif // UNITY_2019_3_OR_NEWER
136+
137+
#if UNITY_2019_3_OR_NEWER
138+
{ Configurations.NewInputSystem, new ConfigGetter(() => {
139+
SerializedObject settings = new SerializedObject(Unsupported.GetSerializedAssetInterfaceSingleton(nameof(PlayerSettings)));
140+
SerializedProperty newInputEnabledProp = settings?.FindProperty("activeInputHandler");
141+
return newInputEnabledProp?.intValue != 1; })
142+
},
143+
#endif // UNITY_2019_3_OR_NEWER
134144

135145
// Android Settings
136146
{ Configurations.AndroidMultiThreadedRendering, new ConfigGetter(() => !PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android), BuildTarget.Android) },
@@ -168,6 +178,27 @@ public bool IsActiveBuildTargetValid()
168178
{ Configurations.EyeTrackingCapability, () => PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.GazeInput, true) },
169179
#endif // UNITY_2019_3_OR_NEWER
170180

181+
#if UNITY_2019_3_OR_NEWER
182+
{ Configurations.NewInputSystem, () => {
183+
if (EditorUtility.DisplayDialog("Unity editor restart required", "The Unity editor must be restarted for the input system change to take effect. Cancel or apply.", "Apply", "Cancel"))
184+
{
185+
SerializedObject settings = new SerializedObject(Unsupported.GetSerializedAssetInterfaceSingleton(nameof(PlayerSettings)));
186+
187+
if (settings != null)
188+
{
189+
settings.Update();
190+
SerializedProperty activeInputHandlerProperty = settings.FindProperty("activeInputHandler");
191+
if (activeInputHandlerProperty != null)
192+
{
193+
activeInputHandlerProperty.intValue = 2;
194+
settings.ApplyModifiedProperties();
195+
typeof(EditorApplication).GetMethod("RestartEditorAndRecompileScripts", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static)?.Invoke(null, null);
196+
}
197+
}
198+
}}
199+
},
200+
#endif // UNITY_2019_3_OR_NEWER
201+
171202
// Android Settings
172203
{ Configurations.AndroidMultiThreadedRendering, () => PlayerSettings.SetMobileMTRendering(BuildTargetGroup.Android, false) },
173204
{ Configurations.AndroidMinSdkVersion, () => PlayerSettings.Android.minSdkVersion = MinAndroidSdk },

Assets/MRTK/Providers/OpenXR.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"name": "Microsoft.MixedReality.Toolkit.Providers.OpenXR",
3+
"rootNamespace": "",
4+
"references": [
5+
"Microsoft.MixedReality.OpenXR",
6+
"Microsoft.MixedReality.Toolkit",
7+
"Microsoft.MixedReality.Toolkit.Providers.XRSDK",
8+
"Unity.XR.OpenXR"
9+
],
10+
"includePlatforms": [
11+
"Editor",
12+
"WSA",
13+
"WindowsStandalone32",
14+
"WindowsStandalone64"
15+
],
16+
"excludePlatforms": [],
17+
"allowUnsafeCode": false,
18+
"overrideReferences": false,
19+
"precompiledReferences": [],
20+
"autoReferenced": true,
21+
"defineConstraints": [
22+
"UNITY_2020_2_OR_NEWER"
23+
],
24+
"versionDefines": [
25+
{
26+
"name": "com.microsoft.mixedreality.openxr",
27+
"expression": "",
28+
"define": "MSFT_OPENXR"
29+
},
30+
{
31+
"name": "com.unity.xr.openxr",
32+
"expression": "",
33+
"define": "UNITY_OPENXR"
34+
}
35+
],
36+
"noEngineReferences": false
37+
}

Assets/MRTK/Providers/OpenXR/MRTK.OpenXR.asmdef.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/MRTK/Providers/OpenXR/Profiles.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: a4a1c93114e9437cb75d8b3ee4e0e1ba, type: 3}
13+
m_Name: DefaultOpenXRCameraProfile
14+
m_EditorClassIdentifier:
15+
isCustomProfile: 0
16+
settingsConfigurations:
17+
- componentType:
18+
reference: Microsoft.MixedReality.Toolkit.XRSDK.GenericXRSDKCameraSettings,
19+
Microsoft.MixedReality.Toolkit.Providers.XRSDK
20+
componentName: XR SDK Camera Settings
21+
priority: 0
22+
runtimePlatform: -1
23+
settingsProfile: {fileID: 0}
24+
nearClipPlaneOpaqueDisplay: 0.1
25+
farClipPlaneOpaqueDisplay: 1000
26+
cameraClearFlagsOpaqueDisplay: 1
27+
backgroundColorOpaqueDisplay: {r: 0, g: 0, b: 0, a: 1}
28+
opaqueQualityLevel: 5
29+
nearClipPlaneTransparentDisplay: 0.1
30+
farClipPlaneTransparentDisplay: 50
31+
cameraClearFlagsTransparentDisplay: 2
32+
backgroundColorTransparentDisplay: {r: 0, g: 0, b: 0, a: 0}
33+
transparentQualityLevel: 0

Assets/MRTK/Providers/OpenXR/Profiles/DefaultOpenXRCameraProfile.asset.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: 7612acbc1a4a4ed0afa5f4ccbe42bee4, type: 3}
13+
m_Name: DefaultOpenXRConfigurationProfile
14+
m_EditorClassIdentifier:
15+
isCustomProfile: 0
16+
targetExperienceScale: 3
17+
enableCameraSystem: 1
18+
cameraProfile: {fileID: 11400000, guid: 6d8face473a227c43b8c2b4bba9c9204, type: 2}
19+
cameraSystemType:
20+
reference: Microsoft.MixedReality.Toolkit.CameraSystem.MixedRealityCameraSystem,
21+
Microsoft.MixedReality.Toolkit.Services.CameraSystem
22+
enableInputSystem: 1
23+
inputSystemProfile: {fileID: 11400000, guid: b11f151f3f7f6c94bae2b732652af41c, type: 2}
24+
inputSystemType:
25+
reference: Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem, Microsoft.MixedReality.Toolkit.Services.InputSystem
26+
enableBoundarySystem: 1
27+
boundarySystemType:
28+
reference: Microsoft.MixedReality.Toolkit.XRSDK.XRSDKBoundarySystem, Microsoft.MixedReality.Toolkit.Providers.XRSDK
29+
boundaryVisualizationProfile: {fileID: 11400000, guid: 6d28cce596b44bd3897ca86f8b24e076,
30+
type: 2}
31+
enableTeleportSystem: 1
32+
teleportSystemType:
33+
reference: Microsoft.MixedReality.Toolkit.Teleport.MixedRealityTeleportSystem,
34+
Microsoft.MixedReality.Toolkit.Services.TeleportSystem
35+
enableSpatialAwarenessSystem: 1
36+
spatialAwarenessSystemType:
37+
reference: Microsoft.MixedReality.Toolkit.SpatialAwareness.MixedRealitySpatialAwarenessSystem,
38+
Microsoft.MixedReality.Toolkit.Services.SpatialAwarenessSystem
39+
spatialAwarenessSystemProfile: {fileID: 11400000, guid: bacc3ee1fe0019e488dcc47839b347a6,
40+
type: 2}
41+
diagnosticsSystemProfile: {fileID: 11400000, guid: 478436bd1083882479a52d067e98e537,
42+
type: 2}
43+
enableDiagnosticsSystem: 0
44+
diagnosticsSystemType:
45+
reference: Microsoft.MixedReality.Toolkit.Diagnostics.MixedRealityDiagnosticsSystem,
46+
Microsoft.MixedReality.Toolkit.Services.DiagnosticsSystem
47+
sceneSystemProfile: {fileID: 11400000, guid: 069efa41032a317409790a6a08435311, type: 2}
48+
enableSceneSystem: 0
49+
sceneSystemType:
50+
reference: Microsoft.MixedReality.Toolkit.SceneSystem.MixedRealitySceneSystem,
51+
Microsoft.MixedReality.Toolkit.Services.SceneSystem
52+
registeredServiceProvidersProfile: {fileID: 11400000, guid: efbaf6ea540c69f4fb75415a5d145a53,
53+
type: 2}
54+
useServiceInspectors: 0
55+
renderDepthBuffer: 0
56+
enableVerboseLogging: 0

Assets/MRTK/Providers/OpenXR/Profiles/DefaultOpenXRConfigurationProfile.asset.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)