public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); VrtpEditorUtils.DrawImage(_headerLogo, 77, new Vector2(0, -4)); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Settings", EditorStyles.boldLabel); EditorGUILayout.LabelField(_gcOverride, EditorStyles.boldLabel, GUILayout.Width(68)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); ++EditorGUI.indentLevel; EditorGUILayout.LabelField(_gcOverrideAll, GUILayout.Width(32)); EditorGUILayout.PropertyField(_pOverrideAll, _gcNull, true, GUILayout.Width(32)); --EditorGUI.indentLevel; _overrideAll = _pOverrideAll.boolValue; EditorGUILayout.EndHorizontal(); DrawSettings(); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } }
void OnGUI() { VrtpEditorUtils.DrawImage(_headerLogo, 77, Vector2.zero, false); EditorGUILayout.LabelField("VR Tunnelling Pro"); EditorGUILayout.LabelField("Version " + VrTunnellingPro.TunnellingBase.VRTP_VERSION); EditorGUILayout.LabelField("Copyright 2018 Sigtrap Ltd"); EditorGUILayout.LabelField("All Rights Reserved"); }
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(); }
protected void OnEnable() { _tb = (TunnellingBase)target; _headerLogo = VrtpEditorUtils.LoadTexture(HEADER_LOGO_NAME); InitAps( _pTarget, _pFxColor, _pFxCover, _pFxFeather, _pFxSkybox, _pApplyColorToBkg, _pAvUse, _pAvStr, _pAvMin, _pAvMax, _pAvSmooth, _pLaUse, _pLaStr, _pLaMin, _pLaMax, _pLaSmooth, _pLvUse, _pLvStr, _pLvMin, _pLvMax, _pLvSmooth, _pCounterMotion, _pCounterRotStr, _pCounterRotAxs, _pMotionEffectTarget, _pArtTilt, _pArtTiltStr, _pArtTiltMax, _pArtTiltSmooth, _pDivFps, _pDivTrans, _pDivRot ); SectionToggle.Init(serializedObject, _showMotionDetection, _showMotionEffects); #region Motion detection labels _gcAvStr = new GUIContent(MOTION_STRENGTH, string.Format(MOTION_STR_FMT, MOTION_AV)); _gcLaStr = new GUIContent(MOTION_STRENGTH, string.Format(MOTION_STR_FMT, MOTION_LA)); _gcLvStr = new GUIContent(MOTION_STRENGTH, string.Format(MOTION_STR_FMT, MOTION_LV)); _gcAvMin = new GUIContent(MOTION_MIN, string.Format(MOTION_MIN_FMT, MOTION_AV, MOTION_AV_UNITS)); _gcLaMin = new GUIContent(MOTION_MIN, string.Format(MOTION_MIN_FMT, MOTION_LA, MOTION_LA_UNITS)); _gcLvMin = new GUIContent(MOTION_MIN, string.Format(MOTION_MIN_FMT, MOTION_LV, MOTION_LV_UNITS)); _gcAvMax = new GUIContent(MOTION_MAX, string.Format(MOTION_MAX_FMT, MOTION_AV, MOTION_AV_UNITS)); _gcLaMax = new GUIContent(MOTION_MAX, string.Format(MOTION_MAX_FMT, MOTION_LA, MOTION_LA_UNITS)); _gcLvMax = new GUIContent(MOTION_MAX, string.Format(MOTION_MAX_FMT, MOTION_LV, MOTION_LV_UNITS)); _gcAvSmooth = new GUIContent(MOTION_SMOOTH, string.Format(MOTION_SMOOTH_FMT, MOTION_AV)); _gcLaSmooth = new GUIContent(MOTION_SMOOTH, string.Format(MOTION_SMOOTH_FMT, MOTION_LA)); _gcLvSmooth = new GUIContent(MOTION_SMOOTH, string.Format(MOTION_SMOOTH_FMT, MOTION_LV)); #endregion _fiDebugMotion = typeof(TunnellingBase).GetField("_debugMotionCalculations", BindingFlags.Instance | BindingFlags.NonPublic); _fiDebugAv = typeof(TunnellingBase).GetField("_debugAv", BindingFlags.Instance | BindingFlags.NonPublic); _fiDebugLa = typeof(TunnellingBase).GetField("_debugLa", BindingFlags.Instance | BindingFlags.NonPublic); _fiDebugLv = typeof(TunnellingBase).GetField("_debugLv", BindingFlags.Instance | BindingFlags.NonPublic); _fiDebugForceOn = typeof(TunnellingBase).GetField("_debugForceOn", BindingFlags.Instance | BindingFlags.NonPublic); _fiDebugForceVal = typeof(TunnellingBase).GetField("_debugForceValue", BindingFlags.Instance | BindingFlags.NonPublic); CacheProperties(); EditorApplication.update += OnEditorUpdate; }
protected override void DrawCounterMotionSettings() { base.DrawCounterMotionSettings(); EditorGUILayout.Space(); VrtpEditorUtils.PropertyField(_pCounterVelMode); var mode = (TunnellingImageBase.CounterVelocityMode)_pCounterVelMode.p.intValue; if (mode == TunnellingImageBase.CounterVelocityMode.REAL) { VrtpEditorUtils.PropertyField(_pCounterVelResetDistance); VrtpEditorUtils.PropertyField(_pCounterVelResetTime); } if (mode != TunnellingImageBase.CounterVelocityMode.OFF) { VrtpEditorUtils.PropertyField(_pCounterVelStr); VrtpEditorUtils.PropertyField(_pCounterVelAxs); } }
protected override void DrawSettings() { VrtpStyles.BeginSectionBox(); { VrtpEditorUtils.ToggleProperty(_pDrawSkybox, null, VrtpStyles.sectionHeader); if (_tm.drawSkybox) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(_pApplyColorToBkg, _gcApplyColor); EditorGUILayout.PropertyField(_pFxSkybox); --EditorGUI.indentLevel; } } VrtpStyles.EndSectionBox(); VrtpStyles.BeginSectionBox(); { VrtpEditorUtils.ToggleProperty(_pDrawBeforeTransparent, null, VrtpStyles.sectionHeader); } VrtpStyles.EndSectionBox(); VrtpStyles.BeginSectionBox(); { VrtpEditorUtils.ToggleProperty(_pUseMask, null, VrtpStyles.sectionHeader); if (_tm.useMask) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(_pStencilRef); EditorGUILayout.PropertyField(_pStencilMask); EditorGUILayout.PropertyField(_pStencilBias); EditorGUILayout.HelpBox("Mask may stress drawcalls and fillrate.", MessageType.Warning); --EditorGUI.indentLevel; } } VrtpStyles.EndSectionBox(); if (!_tm.irisZRejectionEnabled) { EditorGUILayout.HelpBox("Z-Rejection fillrate optimisation disabled", MessageType.Warning); } DrawMotionSettings(); }
protected virtual void DrawCounterMotionSettings() { VrtpEditorUtils.PropertyField(_pCounterRotStr); VrtpEditorUtils.PropertyField(_pCounterRotAxs); }
protected void DrawMotionSettings() { #region Detection VrtpStyles.BeginSectionBox(); { ++EditorGUI.indentLevel; _showMotionDetection.active = EditorGUILayout.Foldout(_showMotionDetection, "Motion Detection", VrtpStyles.sectionFoldout); --EditorGUI.indentLevel; if (_showMotionDetection) { EditorGUILayout.Space(); #region Angular Velocity VrtpStyles.BeginChildBox(); { VrtpEditorUtils.ToggleProperty(_pAvUse, _pAvUse.content, VrtpStyles.sectionHeader); if (_tb.useAngularVelocity) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(_pAvStr, _gcAvStr); EditorGUILayout.PropertyField(_pAvMin, _gcAvMin); EditorGUILayout.PropertyField(_pAvMax, _gcAvMax); EditorGUILayout.PropertyField(_pAvSmooth, _gcAvSmooth); --EditorGUI.indentLevel; } } VrtpStyles.EndChildBox(); #endregion #region Linear Acceleration VrtpStyles.BeginChildBox(); { VrtpEditorUtils.ToggleProperty(_pLaUse, _pLaUse.content, VrtpStyles.sectionHeader); if (_tb.useAcceleration) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(_pLaStr, _gcLaStr); EditorGUILayout.PropertyField(_pLaMin, _gcLaMin); EditorGUILayout.PropertyField(_pLaMax, _gcLaMax); EditorGUILayout.PropertyField(_pLaSmooth, _gcLaSmooth); --EditorGUI.indentLevel; } } VrtpStyles.EndChildBox(); #endregion #region Linear Velocity VrtpStyles.BeginChildBox(); { VrtpEditorUtils.ToggleProperty(_pLvUse, _pLvUse.content, VrtpStyles.sectionHeader); if (_tb.useVelocity) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(_pLvStr, _gcLvStr); EditorGUILayout.PropertyField(_pLvMin, _gcLvMin); EditorGUILayout.PropertyField(_pLvMax, _gcLvMax); EditorGUILayout.PropertyField(_pLvSmooth, _gcLvSmooth); --EditorGUI.indentLevel; } } VrtpStyles.EndChildBox(); #endregion #region Force Vignette EditorGUILayout.Space(); VrtpEditorUtils.PropertyField(_pForceVigMode); if (_pForceVigMode.p.intValue != (int)TunnellingBase.ForceVignetteMode.NONE) { VrtpEditorUtils.PropertyField(_pForceVigVal); } #endregion } } VrtpStyles.EndSectionBox(); #endregion #region Effects VrtpStyles.BeginSectionBox(); { ++EditorGUI.indentLevel; _showMotionEffects.active = EditorGUILayout.Foldout(_showMotionEffects, "Motion Effects", VrtpStyles.sectionFoldout); --EditorGUI.indentLevel; if (_showMotionEffects) { EditorGUILayout.Space(); #region Counter-motion VrtpStyles.BeginChildBox(); { VrtpEditorUtils.ToggleProperty(_pCounterMotion, null, VrtpStyles.sectionHeader); if (_pCounterMotion.p.boolValue) { ++EditorGUI.indentLevel; DrawCounterMotionSettings(); --EditorGUI.indentLevel; } } VrtpStyles.EndChildBox(); #endregion EditorGUILayout.Separator(); EditorGUILayout.PropertyField(_pMotionEffectTarget); if (_tb.motionEffectTarget == null && _tb.usingMotionEffectTarget) { EditorGUILayout.HelpBox("No motion effect target specified!", MessageType.Error); } #region Auto-tilt VrtpStyles.BeginChildBox(); { VrtpEditorUtils.ToggleProperty(_pArtTilt, null, VrtpStyles.sectionHeader); if (_pArtTilt.p.boolValue) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(_pArtTiltStr); EditorGUILayout.PropertyField(_pArtTiltMax); EditorGUILayout.PropertyField(_pArtTiltSmooth); --EditorGUI.indentLevel; } } VrtpStyles.EndChildBox(); #endregion VrtpStyles.BeginChildBox(); { EditorGUILayout.PropertyField(_pDivFps); if (_pDivFps.p.intValue > 1) { EditorGUILayout.PropertyField(_pDivTrans); EditorGUILayout.PropertyField(_pDivRot); } } VrtpStyles.EndChildBox(); } } VrtpStyles.EndSectionBox(); #endregion }
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 }