unity3d的debug.log函式用於列印日誌,一般專案中都會對其作如下兩件事情:
(1)希望有乙個總的開關來控制整個遊戲中日誌的列印與否;
(2)有的系統會將log封一層並新增統一的標記,比如skill模組希望列印的日誌格式為[skill]***。
對於第乙個問題,unity沒有統一的開關用於控制日誌的輸出。對於第二個問題,將log用乙個函式封一層,那麼在除錯的時候雙擊console裡面的堆疊時將不能跳轉到相應的邏輯塊,很麻煩。
怎麼解決呢,有乙個辦法,就是將debug.log封裝進乙個dll,話不多說**如下所示:
using在遊戲中有兩種用法:system;
using
unityengine;
namespace
mydebug
static
public
void log(object
message, unityengine.object context)
}static
public
void logwarning(object
message)
static
public
void logwarning(object
message, unityengine.object context)
}static
public
void logerror(object
message)
static
public
void logerror(object
message, unityengine.object context)
}public
static
void
logexception(exception exception)
public
static
void
logexception(exception exception, unityengine.object context)
public
static
void
drawline(vector3 start, vector3 end)
public
static
void
drawline(vector3 start, vector3 end, color color)
public
static
void drawline(vector3 start, vector3 end, color color, float
duration)
public
static
void drawline(vector3 start, vector3 end, color color, float duration, bool
depthtest)
public
static
void
drawray(vector3 start, vector3 dir)
public
static
void
drawray(vector3 start, vector3 dir, color color)
public
static
void drawray(vector3 start, vector3 dir, color color, float
duration)
public
static
void drawray(vector3 start, vector3 dir, color color, float duration, bool
depthtest)
public
static
void
break()
public
static
void
cleardeveloperconsole()
public
static
void
debugbreak()}}
using debug = mydebug.debug;然後用法和預設的一樣,或者直接使用:
mydebug.debug.log("同樣的,對於第二個問題,可以將skill系統的log進行類似的封裝:something
");
using注意,在編譯庫檔案的時候,需要手動地設定工程屬性中的目標框架,如下圖所示:system;
using
system.collections.generic;
using
system.text;
namespace
mydebug
static
public
void log(object
message, unityengine.object context)
}static
public
void logwarning(object
message)
static
public
void logwarning(object
message, unityengine.object context)
}static
public
void logerror(object
message)
static
public
void logerror(object
message, unityengine.object context)}}
}
將上述**編譯到mydebug.dll中,並將此dll放入到遊戲工程,那麼就可以在遊戲中自由使用log功能,並且有統一開關來控制是否列印日誌,而且可以進行直接的堆疊跳轉了。
iOS 系統自帶xml解析(自定義封裝)
說實話,神他麼用過xml解析,只是調了幾次這種介面,每次都要寫,好麻煩,自己封裝一下,以後會有用吧。首先是基類 請求資料的自定義 委託處理 在文件開始的時候觸發 void parserdidstartdocument nsxmlparser parser 解析起始標記 void parser nsx...
Unity 將Debug封裝成dll
在開發過程中避免不了各種debug除錯,在打包的時候為了減少效能消耗,需要將所有的debug注釋或刪除掉。如果再次調整則需要取消注釋,來回折騰很是麻煩。之前嘗試將debug簡單的封裝到乙個類,利用乙個bool控制是否啟用debug功能,正常開發是只需將bool值設為true,打包時設為false即可...
UITableViewCell系統自帶的四種樣式
系統自己的uitableviewcell樣式有四種 default樣式 左邊乙個顯示的imageview,乙個標題textlabel,沒有detailtextlabel。subtitle樣式 左邊乙個顯示的imageview,上邊乙個主標題textlabel,乙個副標題detailtextlabel...