AR Design
UBC EML collab with UBC SALA - visualizing IoT data in AR
MixedRealityCameraManagerEditor.cs
Go to the documentation of this file.
1 // Copyright (c) Microsoft Corporation. All rights reserved.
2 // Licensed under the MIT License. See LICENSE in the project root for license information.
3 
5 using UnityEditor;
6 using UnityEngine;
7 
8 namespace HoloToolKit.Unity
9 {
10  [CustomEditor(typeof(MixedRealityCameraManager))]
11  public class MixedRealityCameraManagerEditor : Editor
12  {
13  private SerializedProperty opaqueNearClip;
14  private SerializedProperty opaqueClearFlags;
15  private SerializedProperty opaqueBackgroundColor;
16  private SerializedProperty opaqueQualityLevel;
17 
18  private SerializedProperty transparentNearClip;
19  private SerializedProperty transparentClearFlags;
20  private SerializedProperty transparentBackgroundColor;
21  private SerializedProperty holoLensQualityLevel;
22 
23  private GUIContent nearClipTitle;
24  private GUIContent clearFlagsTitle;
25  private GUIStyle headerStyle;
26 
27  private void OnEnable()
28  {
29  opaqueNearClip = serializedObject.FindProperty("NearClipPlane_OpaqueDisplay");
30  opaqueClearFlags = serializedObject.FindProperty("CameraClearFlags_OpaqueDisplay");
31  opaqueBackgroundColor = serializedObject.FindProperty("BackgroundColor_OpaqueDisplay");
32  opaqueQualityLevel = serializedObject.FindProperty("OpaqueQualityLevel");
33 
34  transparentNearClip = serializedObject.FindProperty("NearClipPlane_TransparentDisplay");
35  transparentClearFlags = serializedObject.FindProperty("CameraClearFlags_TransparentDisplay");
36  transparentBackgroundColor = serializedObject.FindProperty("BackgroundColor_TransparentDisplay");
37  holoLensQualityLevel = serializedObject.FindProperty("HoloLensQualityLevel");
38  }
39 
40  public override void OnInspectorGUI()
41  {
42  nearClipTitle = new GUIContent("Near Clip");
43  clearFlagsTitle = new GUIContent("Clear Flags");
44  headerStyle = new GUIStyle("label") { richText = true };
45 
46  serializedObject.Update();
47  EditorGUILayout.Space();
48  EditorGUILayout.LabelField("<b>Opaque Display Settings:</b>", headerStyle);
49  EditorGUILayout.PropertyField(opaqueNearClip, nearClipTitle);
50  EditorGUILayout.PropertyField(opaqueClearFlags, clearFlagsTitle);
51  if ((CameraClearFlags)opaqueClearFlags.intValue == CameraClearFlags.Color)
52  {
53  opaqueBackgroundColor.colorValue = EditorGUILayout.ColorField("Background Color", opaqueBackgroundColor.colorValue);
54  }
55 
56  opaqueQualityLevel.intValue = EditorGUILayout.Popup("Quality Setting", opaqueQualityLevel.intValue, QualitySettings.names);
57 
58  EditorGUILayout.Space();
59  EditorGUILayout.LabelField("<b>Transparent Display Settings:</b>", headerStyle);
60  EditorGUILayout.PropertyField(transparentNearClip, nearClipTitle);
61  EditorGUILayout.PropertyField(transparentClearFlags, clearFlagsTitle);
62  if ((CameraClearFlags)transparentClearFlags.intValue == CameraClearFlags.Color)
63  {
64  transparentBackgroundColor.colorValue = EditorGUILayout.ColorField("Background Color", transparentBackgroundColor.colorValue);
65  }
66 
67  holoLensQualityLevel.intValue = EditorGUILayout.Popup("Quality Setting", holoLensQualityLevel.intValue, QualitySettings.names);
68 
69  serializedObject.ApplyModifiedProperties();
70  }
71  }
72 }
This script tells you if your head mounted display (HMD) is a transparent device or an occluded devic...