[心得]將Unity log顯示在Firebug上

之前有介紹過把Flex log顯示在Firebug上,這次改寫一個給Unity用的版本,之所以使用Firebug是因為Firebug在顯示上很清楚,且如果把顯示寫在onGUI上,onGUI錯掉也是不能顯示log,所以把log切出是比較理想的

由於筆者學的Unity語法是C#,所以以下的範例都是用C#寫的,其它語言版本請再參考相關API,概念都相同。

Unity本身是使用Debug類別做log訊息,預設會顯示在編輯器的log視窗及產出log文件,如果要加一個新的輸出方式,可使用Application.RegisterLogCallback,該方法可設定一個Delegate做為輸出處理,整個程式看起來如下:

void OnEnable()
{
        Application.RegisterLogCallback(fireBugLogHandler);
}

private void fireBugLogHandler(string logString, string stackTrace, LogType logType)
{
        string callString = null;
        switch (logType)
        {
                case LogType.Assert:
                case LogType.Log:
                        callString = "console.info";
                        break;
                case LogType.Exception:
                case LogType.Error:
                        callString = "console.error";
                        break;
                case LogType.Warning:
                        callString = "console.warn";
                        break;
        }
        Application.ExternalEval(callString + "('" + logString + "');");
}

輸出是使用Application.ExternalEval來執行javascript,只要瀏覽器是firefox且有裝Firebug的話,unity裝會把log顯示在Firebug上了,有興趣的網友可以試試

相關文章:Flex Logger的Firebug target

Firebug:https://addons.mozilla.org/en-US/firefox/addon/firebug/

0 意見 :: [心得]將Unity log顯示在Firebug上