using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
using Object = UnityEngine.Object;
namespace TEngine
{
///
/// 调试器模块。
///
[DisallowMultipleComponent]
public sealed partial class Debugger : MonoBehaviour
{
private static Debugger _instance;
public static Debugger Instance => _instance;
///
/// 默认调试器漂浮框大小。
///
internal static readonly Rect DefaultIconRect = new Rect(10f, 10f, 60f, 60f);
///
/// 默认调试器窗口大小。
///
internal static readonly Rect DefaultWindowRect = new Rect(10f, 10f, 640f, 480f);
///
/// 默认调试器窗口缩放比例。
///
internal static readonly float DefaultWindowScale = 1.5f;
private static TextEditor s_TextEditor = null;
private IDebuggerModule _debuggerModule = null;
private readonly Rect _dragRect = new Rect(0f, 0f, float.MaxValue, 25f);
private Rect _iconRect = DefaultIconRect;
private Rect _windowRect = DefaultWindowRect;
private float _windowScale = DefaultWindowScale;
[SerializeField]
private GUISkin skin = null;
[SerializeField]
private DebuggerActiveWindowType activeWindow = DebuggerActiveWindowType.AlwaysOpen;
public DebuggerActiveWindowType ActiveWindowType => activeWindow;
[SerializeField]
private bool _showFullWindow = false;
[SerializeField]
private ConsoleWindow _consoleWindow = new ConsoleWindow();
private SystemInformationWindow _systemInformationWindow = new SystemInformationWindow();
private EnvironmentInformationWindow _environmentInformationWindow = new EnvironmentInformationWindow();
private ScreenInformationWindow _screenInformationWindow = new ScreenInformationWindow();
private GraphicsInformationWindow _graphicsInformationWindow = new GraphicsInformationWindow();
private InputSummaryInformationWindow _inputSummaryInformationWindow = new InputSummaryInformationWindow();
private InputTouchInformationWindow _inputTouchInformationWindow = new InputTouchInformationWindow();
private InputLocationInformationWindow _inputLocationInformationWindow = new InputLocationInformationWindow();
private InputAccelerationInformationWindow _inputAccelerationInformationWindow = new InputAccelerationInformationWindow();
private InputGyroscopeInformationWindow _inputGyroscopeInformationWindow = new InputGyroscopeInformationWindow();
private InputCompassInformationWindow _inputCompassInformationWindow = new InputCompassInformationWindow();
private PathInformationWindow _pathInformationWindow = new PathInformationWindow();
private SceneInformationWindow _sceneInformationWindow = new SceneInformationWindow();
private TimeInformationWindow _timeInformationWindow = new TimeInformationWindow();
private QualityInformationWindow _qualityInformationWindow = new QualityInformationWindow();
private ProfilerInformationWindow _profilerInformationWindow = new ProfilerInformationWindow();
private RuntimeMemorySummaryWindow _runtimeMemorySummaryWindow = new RuntimeMemorySummaryWindow();
private RuntimeMemoryInformationWindow