// private method // -------------- void Awake() { _Instance = this; GM gm = gameObject.GetComponent <GM>(); if (gm == null) { gameObject.AddComponent <GM>(); } HDebugger.isLogEnable = isShowLog; HDebugger.isWarningEnable = isShowWarning; HDebugger.isErrorEnable = isShowError; HDebugger.isExceptionEnable = isShowException; HDebugger.disableList = new List <HDebuggerModule>(disableList); _disableList = disableList; allQueue = Queue.Synchronized(new Queue()); logQueue = Queue.Synchronized(new Queue()); warningQueue = Queue.Synchronized(new Queue()); errorQueue = Queue.Synchronized(new Queue()); vo = new DebugLogVO(); vo.logString = "Register Log Callback !"; vo.stackTrace = ""; vo.logType = LogType.Log; logQueue.Enqueue(vo); Application.RegisterLogCallback(CatchLogInfo); }
private void CatchLogInfo(string logString, string stackTrace, LogType type) { if (preVO != null && preVO.logString == logString && preVO.stackTrace == stackTrace && type == type) { return; } vo = new DebugLogVO(); vo.logString = logString; vo.stackTrace = stackTrace; vo.logType = type; preVO = vo; switch (type) { case LogType.Log: logQueue.Enqueue(vo); break; case LogType.Warning: warningQueue.Enqueue(vo); break; case LogType.Assert: case LogType.Error: case LogType.Exception: errorQueue.Enqueue(vo); break; default: break; } allQueue.Enqueue(vo); }
void Update() { if (debugLogType == DebugLogType.Log && manager.logQueue.Count > 0) { vo = manager.logQueue.Dequeue() as DebugLogVO; } else if (debugLogType == DebugLogType.Warning && manager.warningQueue.Count > 0) { vo = manager.warningQueue.Dequeue() as DebugLogVO; } else if (debugLogType == DebugLogType.Error && manager.errorQueue.Count > 0) { vo = manager.errorQueue.Dequeue() as DebugLogVO; } else { vo = null; } if (vo == null) { return; } GameObject item = GameObject.Instantiate(logCell); Text text = item.GetComponent <Text>(); switch (vo.logType) { case LogType.Log: text.text = string.Format("<color='{1}'>{0}</color>", vo.logString, "#000000"); break; case LogType.Warning: text.text = string.Format("<color='{1}'>{0}</color>", vo.logString, "#ffa500"); break; case LogType.Assert: case LogType.Error: case LogType.Exception: text.text = string.Format("<color='{1}'>{0}</color>", vo.logString, "#ff0000"); break; default: break; } RectTransform rt = item.GetComponent <RectTransform>(); rt.sizeDelta = new Vector2(rt.sizeDelta.x, text.preferredHeight > cellMinHeight ? text.preferredHeight : cellMinHeight); DebugLogCell debugLogCell = item.GetComponent <DebugLogCell>(); debugLogCell.Vo = vo; debugLogCell.HInputText = inputField; item.SetActive(true); textList.Add(rt); }