我想在构建中检查游戏中的异常和错误,但游戏中没有调试控制台,所以我想制作一个。有没有办法从原始控制台获取这些错误并将其写在屏幕上?
答案 0 :(得分:3)
您可以向Application.logMessageReceived
添加回调函数以接收Debug。*消息。例如:
void Awake(){
Application.logMessageReceived += HandleLog;
}
private void HandleLog(string logString, string stackTrace, LogType type) {
// add them to some UI component for visualizing
}
答案 1 :(得分:0)
你可以购买一些插件来做到这一点。免费方式是添加您使用以下代码更新的文本对象:
public class Logger : MonoBehaviour
{
public Text text;
private static Text textSt;
private static Queue<string> queue = new Queue<string>();
void Awake()
{
textSt = text;
}
public static void Log(string message)
{
Debug.Log (message);
queue.Enqueue(message);
if(queue.Count == 10)
{
queue.Dequeue();
}
StringBuilder sb = new StringBuilder();
foreach(string str in queue)
{
sb.Append(str +"\n");
}
textSt.text = sb.ToString();
}
}
调用Logger.Log方法代替Debug.Log。如果您需要获取错误和异常,可以将try / catch置于预期问题的位置并放置Logger。
文本被放大以显示更多信息,并将其设置为与底部对齐(如堆栈。)
您可以为颜色添加一个额外的参数,以便它以不同的颜色显示警告,消息和错误。
编辑:你可以在我的打印系统中使用Sebastian的答案,因为他的建议抓住了所有的Debug(我错过了)。