Skip to content

Commit da719df

Browse files
author
davidkline-ms
committed
add support for different configurator settings based on unity version
1 parent da70b4f commit da719df

File tree

2 files changed

+79
-24
lines changed

2 files changed

+79
-24
lines changed

Assets/MixedRealityToolkit/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs

Lines changed: 50 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,36 @@ public class MixedRealityProjectConfiguratorWindow : EditorWindow
1515
{
1616
private readonly Dictionary<MRConfig, bool> trackToggles = new Dictionary<MRConfig, bool>()
1717
{
18-
{MRConfig.ForceTextSerialization, true },
19-
{MRConfig.VisibleMetaFiles, true },
20-
{MRConfig.VirtualRealitySupported, true },
21-
{MRConfig.SinglePassInstancing, true },
22-
{MRConfig.SpatialAwarenessLayer, true },
23-
{MRConfig.EnableMSBuildForUnity, true },
18+
{ MRConfig.ForceTextSerialization, true },
19+
{ MRConfig.VisibleMetaFiles, true },
20+
#if UNITY_2019_3_OR_NEWER
21+
{ MRConfig.XRManagerEnabled, false },
22+
// XR Manager platforms
23+
{ MRConfig.XRManagerWindows, true },
24+
{ MRConfig.XRManagerOculus, true },
25+
{ MRConfig.XRManagerAndroid, false },
26+
{ MRConfig.XRManageriOS, false },
27+
#endif // UNITY_2019_3_OR_NEWER
28+
{ MRConfig.VirtualRealitySupported, true },
29+
{ MRConfig.SinglePassInstancing, true },
30+
{ MRConfig.SpatialAwarenessLayer, true },
31+
{ MRConfig.EnableMSBuildForUnity, true },
2432
// UWP Capabilities
25-
{MRConfig.MicrophoneCapability, true },
26-
{MRConfig.InternetClientCapability, true },
27-
{MRConfig.SpatialPerceptionCapability, true },
33+
{ MRConfig.MicrophoneCapability, true },
34+
{ MRConfig.InternetClientCapability, true },
35+
{ MRConfig.SpatialPerceptionCapability, true },
2836
#if UNITY_2019_3_OR_NEWER
29-
{MRConfig.EyeTrackingCapability, true },
30-
#endif
37+
{ MRConfig.EyeTrackingCapability, true },
38+
#endif // UNITY_2019_3_OR_NEWER
39+
3140
// Android Settings
32-
{MRConfig.AndroidMultiThreadedRendering, true },
33-
{MRConfig.AndroidMinSdkVersion, true },
41+
{ MRConfig.AndroidMultiThreadedRendering, true },
42+
{ MRConfig.AndroidMinSdkVersion, true },
3443

3544
// iOS Settings
36-
{MRConfig.IOSMinOSVersion, true },
37-
{MRConfig.IOSArchitecture, true },
38-
{MRConfig.IOSCameraUsageDescription, true },
45+
{ MRConfig.IOSMinOSVersion, true },
46+
{ MRConfig.IOSArchitecture, true },
47+
{ MRConfig.IOSCameraUsageDescription, true },
3948
};
4049

4150
private const string WindowKey = "_MixedRealityToolkit_Editor_MixedRealityProjectConfiguratorWindow";
@@ -46,7 +55,11 @@ public class MixedRealityProjectConfiguratorWindow : EditorWindow
4655
private readonly GUIContent LaterButtonContent = new GUIContent("Later", "Do not show this pop-up notification until next session");
4756
private readonly GUIContent IgnoreButtonContent = new GUIContent("Ignore", "Modify this preference under Edit > Project Settings > MRTK");
4857

49-
private bool showConfigurations = false;
58+
private bool showConfigurations = true;
59+
60+
#if UNITY_2019_3_OR_NEWER
61+
private bool showXRManagerPlatforms = true;
62+
#endif // UNITY_2019_3_OR_NEWER
5063

5164
/// <summary>
5265
/// Show the MRTK Project Configurator utility window or focus if already opened
@@ -139,9 +152,29 @@ private void RenderConfigurations()
139152
EditorGUILayout.LabelField("Project Settings", EditorStyles.boldLabel);
140153
RenderToggle(MRConfig.ForceTextSerialization, "Enable Force Text Serialization");
141154
RenderToggle(MRConfig.VisibleMetaFiles, "Enable Visible meta files");
155+
#if UNITY_2019_3_OR_NEWER
156+
RenderToggle(MRConfig.XRManagerEnabled, "Enable XR Manager");
157+
showXRManagerPlatforms = EditorGUILayout.Foldout(showXRManagerPlatforms, "XR Manager Platforms", true);
158+
if (showXRManagerPlatforms)
159+
{
160+
using (new EditorGUI.IndentLevelScope())
161+
{
162+
// todo
163+
RenderToggle(MRConfig.XRManagerWindows, "Windows XR");
164+
RenderToggle(MRConfig.XRManagerOculus, "Oculus XR");
165+
RenderToggle(MRConfig.XRManagerAndroid, "Android ARCore XR");
166+
RenderToggle(MRConfig.XRManageriOS, "iOS ARKit XR");
167+
}
168+
}
169+
#endif // UNITY_2019_3_OR_NEWER
142170
if (!MixedRealityOptimizeUtils.IsBuildTargetAndroid() && !MixedRealityOptimizeUtils.IsBuildTargetIOS())
143171
{
172+
#if UNITY_2019_3_OR_NEWER
173+
RenderToggle(MRConfig.VirtualRealitySupported, "Enable Legacy XR");
174+
#else
175+
144176
RenderToggle(MRConfig.VirtualRealitySupported, "Enable VR Supported");
177+
#endif // UNITY_2019_3_OR_NEWER
145178
}
146179
RenderToggle(MRConfig.SinglePassInstancing, "Set Single Pass Instanced rendering path");
147180
RenderToggle(MRConfig.SpatialAwarenessLayer, "Set Default Spatial Awareness Layer");

Assets/MixedRealityToolkit/Utilities/Editor/Setup/MixedRealityProjectConfigurator.cs

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,22 @@ public enum Configurations
3333
SinglePassInstancing,
3434
SpatialAwarenessLayer,
3535
EnableMSBuildForUnity,
36+
#if UNITY_2019_3_OR_NEWER
37+
XRManagerEnabled,
38+
// XR Manager platforms
39+
XRManagerWindows,
40+
XRManagerOculus,
41+
XRManagerAndroid,
42+
XRManageriOS,
43+
#endif // UNITY_2019_3_OR_NEWER
3644

3745
// WSA Capabilities
3846
SpatialPerceptionCapability = 1000,
3947
MicrophoneCapability,
4048
InternetClientCapability,
4149
#if UNITY_2019_3_OR_NEWER
4250
EyeTrackingCapability,
43-
#endif
51+
#endif // UNITY_2019_3_OR_NEWER
4452

4553
// Android Settings
4654
AndroidMultiThreadedRendering = 2000,
@@ -58,8 +66,15 @@ public enum Configurations
5866
{ Configurations.LatestScriptingRuntime, () => { return IsLatestScriptingRuntime(); } },
5967
{ Configurations.ForceTextSerialization, () => { return IsForceTextSerialization(); } },
6068
{ Configurations.VisibleMetaFiles, () => { return IsVisibleMetaFiles(); } },
61-
// Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms
62-
// with legacy requirements.
69+
#if UNITY_2019_3_OR_NEWER
70+
{ Configurations.XRManagerEnabled, () => { return false; /* todo */ } },
71+
{ Configurations.XRManagerWindows, () => { return false; /* todo */ } },
72+
{ Configurations.XRManagerOculus, () => { return false; /* todo */ } },
73+
{ Configurations.XRManagerAndroid, () => { return false; /* todo */ } },
74+
{ Configurations.XRManageriOS, () => { return false; /* todo */ } },
75+
#endif
76+
// Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms
77+
// with legacy requirements.
6378
#pragma warning disable 0618
6479
{ Configurations.VirtualRealitySupported, () => { return PlayerSettings.virtualRealitySupported; } },
6580
#pragma warning restore 0618
@@ -73,7 +88,7 @@ public enum Configurations
7388
{ Configurations.InternetClientCapability, () => { return PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.InternetClient); } },
7489
#if UNITY_2019_3_OR_NEWER
7590
{ Configurations.EyeTrackingCapability, () => { return PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.GazeInput); } },
76-
#endif
91+
#endif // UNITY_2019_3_OR_NEWER
7792

7893
// Android Settings
7994
{ Configurations.AndroidMultiThreadedRendering, () => { return PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android) == false; } },
@@ -94,6 +109,13 @@ public enum Configurations
94109
{ Configurations.LatestScriptingRuntime, () => { SetLatestScriptingRuntime(); } },
95110
{ Configurations.ForceTextSerialization, () => { SetForceTextSerialization(); } },
96111
{ Configurations.VisibleMetaFiles, () => { SetVisibleMetaFiles(); } },
112+
#if UNITY_2019_3_OR_NEWER
113+
{ Configurations.XRManagerEnabled, () => { /* todo */ } },
114+
{ Configurations.XRManagerWindows, () => { /* todo */ } },
115+
{ Configurations.XRManagerOculus, () => { /* todo */ } },
116+
{ Configurations.XRManagerAndroid, () => { /* todo */ } },
117+
{ Configurations.XRManageriOS, () => { /* todo */ } },
118+
#endif
97119
// Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms
98120
// with legacy requirements.
99121
#pragma warning disable 0618
@@ -109,7 +131,7 @@ public enum Configurations
109131
{ Configurations.InternetClientCapability, () => { PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.InternetClient, true); } },
110132
#if UNITY_2019_3_OR_NEWER
111133
{ Configurations.EyeTrackingCapability, () => { PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.GazeInput, true); } },
112-
#endif
134+
#endif // UNITY_2019_3_OR_NEWER
113135

114136
// Android Settings
115137
{ Configurations.AndroidMultiThreadedRendering, () => { PlayerSettings.SetMobileMTRendering(BuildTargetGroup.Android, false); } },
@@ -202,7 +224,7 @@ public static bool IsLatestScriptingRuntime()
202224
return PlayerSettings.scriptingRuntimeVersion == ScriptingRuntimeVersion.Latest;
203225
#else
204226
return true;
205-
#endif
227+
#endif // UNITY_2019_3_OR_NEWER
206228
}
207229

208230
/// <summary>
@@ -213,7 +235,7 @@ public static void SetLatestScriptingRuntime()
213235
#if !UNITY_2019_3_OR_NEWER
214236
PlayerSettings.scriptingRuntimeVersion = ScriptingRuntimeVersion.Latest;
215237
EditorApplication.OpenProject(Directory.GetParent(Application.dataPath).ToString());
216-
#endif
238+
#endif // UNITY_2019_3_OR_NEWER
217239
}
218240

219241
/// <summary>

0 commit comments

Comments
 (0)