之前有介紹過把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上
張貼留言