예제 #1
0
 private void HandleLog(GameLogger.LogData data)
 {
     if (!logDestroyed && showLogTypes[(int)data.Type])
     {
         AddLogItem(data);
         DeleteExcessLogs();
         UpdateLogCount();
     }
 }
예제 #2
0
        private void SetCurrentActiveLogItem(GameObject logItem)
        {
            Image image = null;

            ClearCurrentActiveLogItem();

            if (lastActiveLogItem != logItem)
            {
                lastActiveLogItem    = logItem;
                image                = lastActiveLogItem.transform.parent.gameObject.GetComponent <Image>();
                image.overrideSprite = box_round_light;
                CustomData         customData = lastActiveLogItem.transform.parent.gameObject.GetComponent <CustomData>();
                GameLogger.LogData data       = (GameLogger.LogData)customData.customData;
                DebugItemContent.text = data.Data + "\nStackTrace:\n" + data.StackTrace;
            }
            else
            {
                lastActiveLogItem     = null;
                DebugItemContent.text = "Click a item to show details";
            }
        }
예제 #3
0
        private void AddLogItem(GameLogger.LogData data)
        {
            if (logDestroyed)
            {
                return;
            }

            GameObject newGo      = GameCloneUtils.CloneNewObjectWithParent(UIDebugTextItem, DebugCmdContent.transform, "Text");
            GameObject newT       = newGo.transform.Find("Text").gameObject;
            Image      newI       = newGo.transform.Find("Image").gameObject.GetComponent <Image>();
            Text       newText    = newT.GetComponent <Text>();
            CustomData customData = newGo.GetComponent <CustomData>();

            customData.customData = data;

            if (data.Data.Length > 32767)//字符过长Text无法显示
            {
                data.Data = data.Data.Substring(0, 32766);
            }

            switch (data.Type)
            {
            case GameLogger.LogType.Text:
                newText.text = data.Data + "        ";
                newI.sprite  = ico_success;
                break;

            case GameLogger.LogType.Error:
                newText.text = "<color=#FF2400>" + data.Data + "</color>       ";
                newI.sprite  = ico_error;
                break;

            case GameLogger.LogType.Assert:
                newText.text = "<color=#FF0000>" + data.Data + "</color>       ";
                newI.sprite  = ico_error;
                break;

            case GameLogger.LogType.Info:
                newText.text = "<color=#70DBDB>" + data.Data + "</color>       ";
                newI.sprite  = ico_info;
                break;

            case GameLogger.LogType.Warning:
                newText.text = "<color=#FF7F00>" + data.Data + "</color>       ";
                newI.sprite  = ico_warning;
                break;
            }

            RectTransform newGoRectTransform   = newGo.GetComponent <RectTransform>();
            RectTransform newTextRectTransform = newT.GetComponent <RectTransform>();

            newGoRectTransform.anchoredPosition = new Vector2(newGoRectTransform.anchoredPosition.x, -currentLogY);

            Vector2 textSize = UIContentSizeUtils.GetContentSizeFitterPreferredSize(newTextRectTransform,
                                                                                    newT.GetComponent <ContentSizeFitter>());

            currentLogY += 12;
            if (textSize.x + 2 > currentLogX)
            {
                currentLogX = textSize.x + 2;
            }
            DebugCmdContent.sizeDelta = new Vector2(currentLogX, currentLogY + 6);

            EventTriggerListener.Get(newT).onClick = SetCurrentActiveLogItem;

            if (lastActiveLogItem == null || lastActiveLogItem == lastLogItem)
            {
                SetCurrentActiveLogItem(newT);
                DebugCmdScrollViewScrollRect.verticalNormalizedPosition = 0;
            }

            lastLogItem = newT;
        }