123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- using UnityEditor;
- using UnityEngine;
- namespace IngameDebugConsole
- {
- [CustomEditor( typeof( DebugLogManager ) )]
- public class DebugLogManagerEditor : Editor
- {
- private SerializedProperty singleton;
- private SerializedProperty minimumHeight;
- private SerializedProperty enableHorizontalResizing;
- private SerializedProperty resizeFromRight;
- private SerializedProperty minimumWidth;
- private SerializedProperty enablePopup;
- private SerializedProperty startInPopupMode;
- private SerializedProperty startMinimized;
- private SerializedProperty toggleWithKey;
- private SerializedProperty toggleKey;
- private SerializedProperty enableSearchbar;
- private SerializedProperty topSearchbarMinWidth;
- private SerializedProperty receiveLogsWhileInactive;
- private SerializedProperty receiveInfoLogs;
- private SerializedProperty receiveWarningLogs;
- private SerializedProperty receiveErrorLogs;
- private SerializedProperty receiveExceptionLogs;
- private SerializedProperty captureLogTimestamps;
- private SerializedProperty alwaysDisplayTimestamps;
- private SerializedProperty queuedLogLimit;
- private SerializedProperty clearCommandAfterExecution;
- private SerializedProperty commandHistorySize;
- private SerializedProperty showCommandSuggestions;
- private SerializedProperty receiveLogcatLogsInAndroid;
- private SerializedProperty logcatArguments;
- private SerializedProperty avoidScreenCutout;
- private SerializedProperty autoFocusOnCommandInputField;
- private readonly GUIContent receivedLogTypesLabel = new GUIContent( "Received Log Types", "Only these logs will be received by the console window, other logs will simply be skipped" );
- private readonly GUIContent receiveInfoLogsLabel = new GUIContent( "Info" );
- private readonly GUIContent receiveWarningLogsLabel = new GUIContent( "Warning" );
- private readonly GUIContent receiveErrorLogsLabel = new GUIContent( "Error" );
- private readonly GUIContent receiveExceptionLogsLabel = new GUIContent( "Exception" );
- private void OnEnable()
- {
- singleton = serializedObject.FindProperty( "singleton" );
- minimumHeight = serializedObject.FindProperty( "minimumHeight" );
- enableHorizontalResizing = serializedObject.FindProperty( "enableHorizontalResizing" );
- resizeFromRight = serializedObject.FindProperty( "resizeFromRight" );
- minimumWidth = serializedObject.FindProperty( "minimumWidth" );
- enablePopup = serializedObject.FindProperty( "enablePopup" );
- startInPopupMode = serializedObject.FindProperty( "startInPopupMode" );
- startMinimized = serializedObject.FindProperty( "startMinimized" );
- toggleWithKey = serializedObject.FindProperty( "toggleWithKey" );
- #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
- toggleKey = serializedObject.FindProperty( "toggleBinding" );
- #else
- toggleKey = serializedObject.FindProperty( "toggleKey" );
- #endif
- enableSearchbar = serializedObject.FindProperty( "enableSearchbar" );
- topSearchbarMinWidth = serializedObject.FindProperty( "topSearchbarMinWidth" );
- receiveLogsWhileInactive = serializedObject.FindProperty( "receiveLogsWhileInactive" );
- receiveInfoLogs = serializedObject.FindProperty( "receiveInfoLogs" );
- receiveWarningLogs = serializedObject.FindProperty( "receiveWarningLogs" );
- receiveErrorLogs = serializedObject.FindProperty( "receiveErrorLogs" );
- receiveExceptionLogs = serializedObject.FindProperty( "receiveExceptionLogs" );
- captureLogTimestamps = serializedObject.FindProperty( "captureLogTimestamps" );
- alwaysDisplayTimestamps = serializedObject.FindProperty( "alwaysDisplayTimestamps" );
- queuedLogLimit = serializedObject.FindProperty( "queuedLogLimit" );
- clearCommandAfterExecution = serializedObject.FindProperty( "clearCommandAfterExecution" );
- commandHistorySize = serializedObject.FindProperty( "commandHistorySize" );
- showCommandSuggestions = serializedObject.FindProperty( "showCommandSuggestions" );
- receiveLogcatLogsInAndroid = serializedObject.FindProperty( "receiveLogcatLogsInAndroid" );
- logcatArguments = serializedObject.FindProperty( "logcatArguments" );
- avoidScreenCutout = serializedObject.FindProperty( "avoidScreenCutout" );
- autoFocusOnCommandInputField = serializedObject.FindProperty( "autoFocusOnCommandInputField" );
- }
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
- EditorGUILayout.PropertyField( singleton );
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField( minimumHeight );
- EditorGUILayout.PropertyField( enableHorizontalResizing );
- if( enableHorizontalResizing.boolValue )
- {
- DrawSubProperty( resizeFromRight );
- DrawSubProperty( minimumWidth );
- }
- EditorGUILayout.PropertyField( avoidScreenCutout );
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField( enablePopup );
- if( enablePopup.boolValue )
- DrawSubProperty( startInPopupMode );
- else
- DrawSubProperty( startMinimized );
- EditorGUILayout.PropertyField( toggleWithKey );
- if( toggleWithKey.boolValue )
- DrawSubProperty( toggleKey );
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField( enableSearchbar );
- if( enableSearchbar.boolValue )
- DrawSubProperty( topSearchbarMinWidth );
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField( receiveLogsWhileInactive );
- EditorGUILayout.PrefixLabel( receivedLogTypesLabel );
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField( receiveInfoLogs, receiveInfoLogsLabel );
- EditorGUILayout.PropertyField( receiveWarningLogs, receiveWarningLogsLabel );
- EditorGUILayout.PropertyField( receiveErrorLogs, receiveErrorLogsLabel );
- EditorGUILayout.PropertyField( receiveExceptionLogs, receiveExceptionLogsLabel );
- EditorGUI.indentLevel--;
- EditorGUILayout.PropertyField( receiveLogcatLogsInAndroid );
- if( receiveLogcatLogsInAndroid.boolValue )
- DrawSubProperty( logcatArguments );
- EditorGUILayout.PropertyField( captureLogTimestamps );
- if( captureLogTimestamps.boolValue )
- DrawSubProperty( alwaysDisplayTimestamps );
- EditorGUILayout.PropertyField( queuedLogLimit );
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField( clearCommandAfterExecution );
- EditorGUILayout.PropertyField( commandHistorySize );
- EditorGUILayout.PropertyField( showCommandSuggestions );
- EditorGUILayout.PropertyField( autoFocusOnCommandInputField );
- EditorGUILayout.Space();
- DrawPropertiesExcluding( serializedObject, "m_Script" );
- serializedObject.ApplyModifiedProperties();
- }
- private void DrawSubProperty( SerializedProperty property )
- {
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField( property );
- EditorGUI.indentLevel--;
- }
- }
- }
|