Skip to content

Commit 0eb4211

Browse files
authored
Experience Settings profile can now be set to None, fixed 2020 issue with cloning profiles (#9982)
* Experience Settings profile can now be set to None * caching the old profile to detect if a change has occured
1 parent 0e17568 commit 0eb4211

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ public class MixedRealityToolkitInspector : UnityEditor.Editor
1212
{
1313
private SerializedProperty activeProfile;
1414
private UnityEditor.Editor activeProfileEditor;
15+
private Object cachedProfile;
1516

1617
private void OnEnable()
1718
{
1819
activeProfile = serializedObject.FindProperty("activeProfile");
20+
cachedProfile = activeProfile.objectReferenceValue;
1921
}
2022

2123
public override void OnInspectorGUI()
@@ -53,14 +55,16 @@ public override void OnInspectorGUI()
5355
EditorGUILayout.HelpBox("MixedRealityToolkit cannot initialize unless an Active Profile is assigned!", MessageType.Error);
5456
}
5557

56-
bool changed = MixedRealityInspectorUtility.DrawProfileDropDownList(activeProfile, null, activeProfile.objectReferenceValue, typeof(MixedRealityToolkitConfigurationProfile), false, false);
58+
bool changed = MixedRealityInspectorUtility.DrawProfileDropDownList(activeProfile, null, activeProfile.objectReferenceValue, typeof(MixedRealityToolkitConfigurationProfile), false, false) ||
59+
cachedProfile != activeProfile.objectReferenceValue;
5760

5861
serializedObject.ApplyModifiedProperties();
5962

6063
if (changed)
6164
{
6265
MixedRealityToolkit.Instance.ResetConfiguration((MixedRealityToolkitConfigurationProfile)activeProfile.objectReferenceValue);
6366
activeProfileEditor = null;
67+
cachedProfile = activeProfile.objectReferenceValue;
6468
}
6569

6670
if (activeProfile.objectReferenceValue != null && activeProfileEditor == null)

Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public class MixedRealityToolkitConfigurationProfileInspector : BaseMixedReality
2121
private static readonly GUIContent TargetScaleContent = new GUIContent("Target Scale:");
2222

2323
// Experience properties
24-
private SerializedProperty experienceSettingsType;
2524
private SerializedProperty experienceSettingsProfile;
2625

2726
// Tracking the old experience scale property for compatibility
@@ -97,7 +96,6 @@ protected override void OnEnable()
9796
MixedRealityToolkitConfigurationProfile mrtkConfigProfile = target as MixedRealityToolkitConfigurationProfile;
9897

9998
// Experience configuration
100-
experienceSettingsType = serializedObject.FindProperty("experienceSettingsType");
10199
experienceSettingsProfile = serializedObject.FindProperty("experienceSettingsProfile");
102100
experienceScaleMigration = serializedObject.FindProperty("targetExperienceScale");
103101

@@ -160,7 +158,7 @@ protected override void OnEnable()
160158
oldExperienceSettingsScale = oldExperienceSettingsProfile.TargetExperienceScale;
161159
}
162160

163-
changed |= RenderProfile(experienceSettingsProfile, typeof(MixedRealityExperienceSettingsProfile), true, false, null, true);
161+
changed |= RenderProfile(experienceSettingsProfile, typeof(MixedRealityExperienceSettingsProfile), true, false, null);
164162

165163
// Experience configuration
166164
if (mrtkConfigProfile.ExperienceSettingsProfile != null)
@@ -258,14 +256,24 @@ protected override void OnEnable()
258256
return changed;
259257
},
260258
() => {
261-
var experienceScale = mrtkConfigProfile.ExperienceSettingsProfile.TargetExperienceScale;
262-
if (experienceScale != ExperienceScale.Room)
259+
if(mrtkConfigProfile.ExperienceSettingsProfile.IsNull())
263260
{
264-
// Alert the user if the experience scale does not support boundary features.
261+
// Alert that an experience settings profile has not been selected
265262
GUILayout.Space(6f);
266-
EditorGUILayout.HelpBox("Boundaries are only supported in Room scale experiences.", MessageType.Warning);
263+
EditorGUILayout.HelpBox("Boundaries require an experience settings profile with a Room scale target experience scale.", MessageType.Warning);
267264
GUILayout.Space(6f);
268265
}
266+
else
267+
{
268+
var experienceScale = mrtkConfigProfile.ExperienceSettingsProfile.TargetExperienceScale;
269+
if (experienceScale != ExperienceScale.Room)
270+
{
271+
// Alert the user if the experience scale does not support boundary features.
272+
GUILayout.Space(6f);
273+
EditorGUILayout.HelpBox("Boundaries are only supported in Room scale experiences.", MessageType.Warning);
274+
GUILayout.Space(6f);
275+
}
276+
}
269277

270278
bool changed = false;
271279
using (var c = new EditorGUI.ChangeCheckScope())

0 commit comments

Comments
 (0)