// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using Microsoft.MixedReality.Toolkit.Editor; using System.Linq; using UnityEditor; namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR { [CustomEditor(typeof(UnityARCameraSettingsProfile))] public class UnityARCameraSettingsProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector { private const string ProfileTitle = "Unity AR Foundation Camera Settings"; private const string ProfileDescription = ""; // Tracking settings private SerializedProperty poseSource; private SerializedProperty trackingType; private SerializedProperty updateType; protected override void OnEnable() { base.OnEnable(); // Tracking settings poseSource = serializedObject.FindProperty("poseSource"); trackingType = serializedObject.FindProperty("trackingType"); updateType = serializedObject.FindProperty("updateType"); } public override void OnInspectorGUI() { RenderProfileHeader(ProfileTitle, ProfileDescription, target); using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) { serializedObject.Update(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Tracking Settings", EditorStyles.boldLabel); EditorGUILayout.PropertyField(poseSource); EditorGUILayout.PropertyField(trackingType); EditorGUILayout.PropertyField(updateType); serializedObject.ApplyModifiedProperties(); } } protected override bool IsProfileInActiveInstance() { var profile = target as BaseMixedRealityProfile; return MixedRealityToolkit.IsInitialized && profile != null && MixedRealityToolkit.Instance.HasActiveProfile && MixedRealityToolkit.Instance.ActiveProfile.CameraProfile != null && MixedRealityToolkit.Instance.ActiveProfile.CameraProfile.SettingsConfigurations != null && MixedRealityToolkit.Instance.ActiveProfile.CameraProfile.SettingsConfigurations.Any(s => s.SettingsProfile == profile); } } }