Unity3D在没有控制台的情况下收到错误 - android build

时间:2016-01-05 18:38:09

标签: android debugging unity3d console

我想在构建中检查游戏中的异常和错误,但游戏中没有调试控制台,所以我想制作一个。有没有办法从原始控制台获取这些错误并将其写在屏幕上?

2 个答案:

答案 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(我错过了)。