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