Unity3d的Debug.Log函數用于列印日志,一般項目中都會對其作如下兩件事情:
(1)希望有一個總的開關來控制整個遊戲中日志的列印與否;
(2)有的系統會将Log封一層并添加統一的标記,比如Skill子產品希望列印的日志格式為[Skill]***。
對于第一個問題,Unity沒有統一的開關用于控制日志的輸出。對于第二個問題,将Log用一個函數封一層,那麼在調試的時候輕按兩下Console裡面的堆棧時将不能跳轉到相應的邏輯塊,很麻煩。
怎麼解決呢,有一個辦法,就是将Debug.Log封裝進一個DLL,話不多說代碼如下所示:
在遊戲中有兩種用法:
然後用法和預設的一樣,或者直接使用:
同樣的,對于第二個問題,可以将Skill系統的Log進行類似的封裝:
注意,在編譯庫檔案的時候,需要手動地設定工程屬性中的目标架構,如下圖所示:

将上述代碼編譯到MyDebug.dll中,并将此dll放入到遊戲工程,那麼就可以在遊戲中自由使用Log功能,并且有統一開關來控制是否列印日志,而且可以進行直接的堆棧跳轉了。