using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
public class DebugPanel : MonoBehaviour {
public Text logText;
private int count = 0;
StringBuilder MyStrBulder;
public string LogSign = "";
/// <summary>
/// 最大debug数 超出此个数则覆盖最开始的debug
/// </summary>
public int maxDebugLineCount = 25;
private int index = 0;
private void Awake()
{
MyStrBulder = new StringBuilder();
Application.logMessageReceived += HandleLog;
panel = transform.Find("Head/Canvas").gameObject.activeSelf;
Debug.Log(panel);
}
private bool panel;
private void Update()
{
if (panel!= transform.Find("Head/Canvas").gameObject.activeSelf)
{
panel = transform.Find("Head/Canvas").gameObject.activeSelf;
Debug.Log(panel);
}
}
void HandleLog(string message, string stackTrace, LogType type)
{
if (!logText)
return;
if (type != LogType.Error && !string.IsNullOrEmpty(LogSign) && message.Contains(LogSign) == false)
return;
switch (type)
{
case LogType.Error:
message = "<color=#FF0000>" + message + "</color>";
break;
case LogType.Assert:
message = "<color=#0000ff>" + message + "</color>";
break;
case LogType.Warning:
message = "<color=#EEEE00>" + message + "</color>";
break;
case LogType.Log:
message = "<color=#000000>" + message + "</color>";
break;
case LogType.Exception:
return;
default:
return;
}
MyStrBulder.AppendFormat("{0}:{1}\n", count, message);
count++;
if (count > maxDebugLineCount) {
index = MyStrBulder.ToString().IndexOf("\n");
MyStrBulder.Remove(0, index + 1);
}
logText.text = MyStrBulder.ToString();
}
}
创建一个text,直接把他拖到这个脚本里就可以了