Skip to main content

屬於工程師的專用工具箱(二):常用工具(Singleton、Debug過濾器)

這次要跟大家分享Singleton、Debug Filter工具,Singleton是資料共享工具,能快速的存取、管理跨Script的資料,Debug Filter是 Debug 訊息過濾器,在遊戲上線後一定會想關閉所有的Debug 訊息,以提升遊戲品質與效能

 

本系列其他文章

 

Singleton

在遊戲中一定會有共用資料,而這些資料想要在多個 Scripts 中去做控制、修改,這時我們通常會使用Singleton(單例模式),簡單來說就是使用一個 Static 的類別做控管資料,進而方便的讀取共享資料。

Singleton 工具

實作方式(類別直接繼承)
呼叫方式
 

Singleton 工具 (繼承 MonoBehaviour 版)

使用時機

如果是純資料(存取Resources、遊戲表格資料),建議使用 Singleton.cs 因為沒有必要繼承MonoBehaviour,省下開銷。

 

Debug過濾器(Debug Filter)

在開發中會有很多地方使用到 Debug.Log 印出資料,在遊戲上線後要關閉 Debug.Log 就會變得非常麻煩,於是我們就會使用程式碼進行集中控制

使用方式

  1. 程式中要 Show Debug Log 的地方都呼叫此方法
  2. 在 File -> Build Settings -> Player Settings -> Other Settings -> Scripting Define Symbols  新增 Debug 字串

 

問題

雖然達成了 Debug Log 排除功能,但在我們點選 Unity Console 中的 Debug 訊息兩下,想要知道 Log 是 Script中 哪一行時,就都會指定到集中管理的方法中,這樣造成了Debug上的不方便,還要自己根據 Stack 去查詢是哪一行

 

改進

這時可以使用自行新增 Debug Class 與 Conditional 的方式,改進上述Debug中的不方便,程式碼是參考以下網站

Matt的拜神紀錄–關掉unity3d Debug.Log

 

DebugFilter工具

使用方式

在 File -> Build Settings -> Player Settings -> Other Settings -> Scripting Define Symbols 新增 DEBUG_FILTER 字串,這樣 Debug Log 就會排除了

 

後記

這次分享了 Singleton 與 DebugFilter 工具,在開發中會更加方便、快速、簡潔,透過以上程式碼,相信大家一定會根據自己的需求製作出更加方便的工具

 

參考資料

 

歡迎轉載,並註明出處 !

 

Arkai

獨立遊戲開發、技術分享。 Indie Game development and technology sharing.

2 thoughts on “屬於工程師的專用工具箱(二):常用工具(Singleton、Debug過濾器)

  1. 您好,我是接觸Unity的新手,關於Debug filter的使用方式,根據https://docs.unity3d.com/Manual/PlatformDependentCompilation.html
    所述,確切位置為:
    File->Build Setting -> Player Settings -> Other Setting -> Scripting Define Symbols

    1. 感謝回報 已修正

      From: File -> Build Settings -> Scripting Define Symbols
      To : File -> Build Settings -> Player Settings -> Other Settings -> Scripting Define Symbols

什麼?不懂! 那就提問吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料