コード例 #1
0
        void DisplayLog(LogItem log)
        {
            switch (log.type)
            {
            case LogType.Log: if (!LogInfo)
                {
                    return;
                }
                break;

            case LogType.Warning: if (!LogWarning)
                {
                    return;
                }
                break;

            default: if (!LogError)
                {
                    return;
                }
                break;
            }
            LogItemHolder holder = logHolders[holderHeadIndex];

            holder.gameObject.SetActive(true);
            holder.transform.SetAsLastSibling();
            holderHeadIndex = (holderHeadIndex + 1) % logHolders.Count;
            holder.item     = log;
            switch (log.type)
            {
            case LogType.Log:
                holder.SetColors(InfoBg, InfoFg);
                break;

            case LogType.Warning:
                holder.SetColors(WarningBg, WarningFg);
                break;

            default:
                holder.SetColors(ErrorBg, ErrorFg);
                break;
            }
            float holderWidth = -1;

            if (HolderTransform != null)
            {
                holderWidth = HolderTransform.sizeDelta.x;
            }
            StartCoroutine(DisplayMessageNextFrame(holder, holderWidth));
            holder.stackTracePanel = stackTracePanel;
        }
コード例 #2
0
        IEnumerator DisplayMessageNextFrame(LogItemHolder holder, float holderWidth)
        {
            if (holderWidth > 0)
            {
                holder.SetPreferredWidth(holderWidth);
            }
            yield return(null);

            yield return(null);

            holder.DisplayMessage();
            if (_containerScrollRect != null)
            {
                _containerScrollRect.verticalNormalizedPosition = 0f;
            }
        }