ErrorLogger屏幕显示开启与DebugModule关联。

ErrorLogger屏幕显示开启与DebugModule关联。
This commit is contained in:
ALEXTANG
2023-10-26 23:45:26 +08:00
parent cfaf82a623
commit b1c7f30be9
3 changed files with 30 additions and 3 deletions

View File

@@ -38,6 +38,8 @@ namespace TEngine
[SerializeField] [SerializeField]
private DebuggerActiveWindowType m_ActiveWindow = DebuggerActiveWindowType.AlwaysOpen; private DebuggerActiveWindowType m_ActiveWindow = DebuggerActiveWindowType.AlwaysOpen;
public DebuggerActiveWindowType ActiveWindowType => m_ActiveWindow;
[SerializeField] [SerializeField]
private bool m_ShowFullWindow = false; private bool m_ShowFullWindow = false;

View File

@@ -1,15 +1,16 @@
using UnityEngine; using System;
using UnityEngine;
namespace TEngine namespace TEngine
{ {
public class ErrorLogger public class ErrorLogger:IDisposable
{ {
public ErrorLogger() public ErrorLogger()
{ {
Application.logMessageReceived += LogHandler; Application.logMessageReceived += LogHandler;
} }
~ErrorLogger() public void Dispose()
{ {
Application.logMessageReceived -= LogHandler; Application.logMessageReceived -= LogHandler;
} }

View File

@@ -68,6 +68,25 @@ namespace TEngine
m_InstanceRoot.gameObject.layer = LayerMask.NameToLayer("UI"); m_InstanceRoot.gameObject.layer = LayerMask.NameToLayer("UI");
UIRootStatic = m_InstanceRoot; UIRootStatic = m_InstanceRoot;
switch (GameModule.Debugger.ActiveWindowType)
{
case DebuggerActiveWindowType.AlwaysOpen:
m_enableErrorLog = true;
break;
case DebuggerActiveWindowType.OnlyOpenWhenDevelopment:
m_enableErrorLog = Debug.isDebugBuild;
break;
case DebuggerActiveWindowType.OnlyOpenInEditor:
m_enableErrorLog = Application.isEditor;
break;
default:
m_enableErrorLog = false;
break;
}
if (m_enableErrorLog) if (m_enableErrorLog)
{ {
_errorLogger = new ErrorLogger(); _errorLogger = new ErrorLogger();
@@ -76,6 +95,11 @@ namespace TEngine
private void OnDestroy() private void OnDestroy()
{ {
if (_errorLogger != null)
{
_errorLogger.Dispose();
_errorLogger = null;
}
CloseAll(); CloseAll();
} }