Esempio n. 1
0
        // 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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }