public static void Open() { if (_i == null) { _i = ScriptableObject.CreateInstance <VrtpAboutWindow>(); _i.minSize = _i.maxSize = new Vector2(320, 160); _i.titleContent = new GUIContent("About VRTP v" + VrTunnellingPro.TunnellingBase.VRTP_VERSION); _i._headerLogo = VrtpEditorUtils.LoadTexture(VrTunnellingProImageEditor.LOGO_NAME); } _i.ShowUtility(); }
public override void OnInspectorGUI() { // Draw header EditorGUI.BeginChangeCheck(); VrtpEditorUtils.DrawImage(_headerLogo, 77, new Vector2(0, 4)); EditorGUILayout.Space(); VrtpStyles.BeginSectionBox(); { EditorGUILayout.PropertyField(_pTarget); if (_tb.motionTarget == null) { EditorGUILayout.HelpBox("No motion target specified!", MessageType.Error); } else if (_tb.motionTarget == _tb.transform) { EditorGUILayout.HelpBox("Motion Target generally shouldn't be the HMD", MessageType.Warning); } } VrtpStyles.EndSectionBox(); VrtpStyles.BeginSectionBox(); { ++EditorGUI.indentLevel; _showEffectSettings = EditorGUILayout.Foldout(_showEffectSettings, "Effect Settings", VrtpStyles.sectionFoldout); --EditorGUI.indentLevel; if (_showEffectSettings) { EditorGUILayout.Space(); EditorGUILayout.PropertyField(_pFxColor); EditorGUILayout.PropertyField(_pFxCover); EditorGUILayout.PropertyField(_pFxFeather); } } VrtpStyles.EndSectionBox(); // Draw content DrawSettings(); // Finalise if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } #region Debug VrtpStyles.BeginSectionBox(); { ++EditorGUI.indentLevel; EditorGUILayout.BeginHorizontal(); { _showDebug = EditorGUILayout.Foldout(_showDebug, _gcDebugLabel, VrtpStyles.sectionFoldout); GUILayout.FlexibleSpace(); if (GUILayout.Button("About VRTP", EditorStyles.miniButton)) { VrtpAboutWindow.Open(); } if (GUILayout.Button("Open Manual", EditorStyles.miniButton)) { Application.OpenURL(URL_DOCS); } } EditorGUILayout.EndHorizontal(); --EditorGUI.indentLevel; if (_showDebug) { bool showMotionDebug = (bool)_fiDebugMotion.GetValue(_tb); EditorGUI.BeginChangeCheck(); showMotionDebug = EditorGUILayout.ToggleLeft(_gcDebugMotion, showMotionDebug, VrtpStyles.sectionHeader); if (EditorGUI.EndChangeCheck()) { _fiDebugMotion.SetValue(_tb, showMotionDebug); // Reset peak motion data each time toggled _debugAvMax = _debugLaMax = _debugLvMax = 0; } if (showMotionDebug) { ++EditorGUI.indentLevel; float currentAv, currentLa, currentLv; currentAv = currentLa = currentLv = 0; if (Application.isPlaying) { #region Get motion data currentAv = (float)_fiDebugAv.GetValue(_tb); currentLa = (float)_fiDebugLa.GetValue(_tb); currentLv = (float)_fiDebugLv.GetValue(_tb); _debugAvMax = Mathf.Max(currentAv, _debugAvMax); _debugLaMax = Mathf.Max(currentLa, _debugLaMax); _debugLvMax = Mathf.Max(currentLv, _debugLvMax); #endregion } else { GUI.enabled = false; _debugAvMax = _debugLaMax = _debugLvMax = 0; } #region Draw GUILayoutOption[] options = new GUILayoutOption[] { GUILayout.Width(72) }; EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField("Motion", EditorStyles.boldLabel, options); EditorGUILayout.LabelField("Current", EditorStyles.boldLabel, options); EditorGUILayout.LabelField("Max", EditorStyles.boldLabel, options); if (GUILayout.Button(_gcDebugMotionResetAll, options)) { _debugAvMax = _debugLaMax = _debugLvMax = 0; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField(_gcDebugAvLabel, options); EditorGUILayout.LabelField(string.Format(DEBUG_MOTION_FORMAT, currentAv), options); EditorGUILayout.LabelField(string.Format(DEBUG_MOTION_FORMAT, _debugAvMax), options); if (GUILayout.Button(_gcDebugMotionResetBtn, options)) { _debugAvMax = 0; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField(_gcDebugLaLabel, options); EditorGUILayout.LabelField(string.Format(DEBUG_MOTION_FORMAT, currentLa), options); EditorGUILayout.LabelField(string.Format(DEBUG_MOTION_FORMAT, _debugLaMax), options); if (GUILayout.Button(_gcDebugMotionResetBtn, options)) { _debugLaMax = 0; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField(_gcDebugLvLabel, options); EditorGUILayout.LabelField(string.Format(DEBUG_MOTION_FORMAT, currentLv), options); EditorGUILayout.LabelField(string.Format(DEBUG_MOTION_FORMAT, _debugLvMax), options); if (GUILayout.Button(_gcDebugMotionResetBtn, options)) { _debugLvMax = 0; } } EditorGUILayout.EndHorizontal(); #endregion GUI.enabled = true; --EditorGUI.indentLevel; } DrawDebugOptions(); } } VrtpStyles.EndSectionBox(); #endregion }