Related Posts Plugin for WordPress, Blogger...

6-24 SRDebugger

本章要來介紹這款超好用的插件『SRDebugger』。插件支援Real-time Console,運作遊戲時如果出現Bug,或是程式撰寫的Debug.Log,都會出現在Console畫面。另外,還有Options Tab的功能,類似遊戲作弊用控制台,可以撰寫類似『無限血量』、『自動跳關』等方便測試的功能,亦能輸出一些重要的訊息。

SRDebugger - Console & Tools On-Device

首先,當你安裝好SRDebugger插件後,他預設會自動啟用,你不需要額外撰寫任何的程式碼。如果你想用程式碼的方式決定是否開啟SRDebugger也行。請在Window/SRDebugger/Settings Window開啟設定畫面。

在Loading選項中預設是Automatic,你可以使用Prefab 或用程式碼SRDebug.Init()進行開啟。這部分的操作大家自己試看看就好,本章的重點會放在撰寫Options Tab上。

進入遊戲後,SRDebugger的開啟方式,連續點擊左上角的區域3次,如下圖由紅色圈框起來的地方。

開啟後的畫面如下,會看見一些System相關的資訊。

如果程式有Exception,或是有使用Debug.Log的地方,都會顯示在這個Console畫面。

Profiler的部分則可以看見顯示FPS、Memory的使用情形。

再來是Options的部分,由於我們現在還沒有撰寫任何程式碼,所以會顯示如下資訊『No options found in SROptions.』。

好的,接下來開始撰寫程式碼吧!

Methods
首先我想增加『+100000 HP』、『+100000 MP』的按鈕,也會需要一個『取消HP/MP作弊』的按鈕。在SROptions中撰寫按鈕的方法,是宣告一個無輸入參數、回傳值為void的public方法,SROptions會自動轉化為按鈕。

所以,接著撰寫CheatHealth、CheatEnergy、RevertPlayerHealthAndEnergy等方法,這邊我是透過一個自定義Game物件統一管理與其他系統的交互事件。類似中介者模式(Mediator)的簡化版做法。

寫好以後執行遊戲測試,打開介面就會出現如下圖的三顆按鈕啦!按下去就可以作弊了。


Supported Type
除了按鈕以外,我們也可以控制變數,SROptions支援Boolean, Enum, int, uint, short, ushort, byte, sbyte, float, double, and string。比方說我想製作一個『金錢作弊』的功能,要在SROptions中調整金錢數量,控制作弊變數有兩種方式:

1. 如下圖,宣告變數CheatCoin並設定get/set,再有需要的地方使用SROptions.Current.CheatCoin取得即可。官方建議使用第一種方式

2. 官方不建議使用第二種方式。於get/set中使用FindObjectOfType取得指定腳本及參數,直接進行設定。

不過依照前面的例子,我的作法是在設定完cheatCoin之後,仍舊由Game類別來處理金錢的修改事件。

 接著來測試看看,我在Options介面將金錢設定成80000。

接著打開背包介面後,發現金錢確實被更改成80000了。

OnPropertyChanged
如果有些變數在遊戲中會實時變化的呢?我們可以用OnPropertyChanged這個方法,讓SRDebugger檢查變數的新值。如果沒有使用OnPropertyChanged的話,則SROptions屬性的更新只會在每次打開選項時才會反映出來。通過這個方法,變數的任何更新都會立即顯示出來。由於我的遊戲目前沒有這個需求,大家就自行參考範例試看看吧。

Attributes
大家可能會覺得按鈕的順序不好,或是金錢作弊增加鈕每次只能+1,又或者想要依照不同作弊類型來分類功能等等。以下跟大家介紹SROptions可以使用的Attributes吧。如下圖,我們可以在Method或是Properties上面使用Attributes來達成一些功能。

Category:分類名稱
DisplayName:介面顯示名稱
Sort:功能排序
NumberRange:如為數字類型的變數,可設定數字範圍
Increment:數字每一次增減的量

如果嫌這樣分行撰寫太佔行數,可以使用逗號將每個Attributes隔開並撰寫於同一行中,比方
[Category("Cheat Inventory"), DisplayName("金錢"), Sort(1), NumberRange(0, 1000000), Increment(10000)]

Pinning
如果覺得每次要作弊的時候,開啟SRDebugger介面很麻煩的話,也可以將作弊按鈕釘選到 畫面上唷。開啟Options後,可以看見右上角有一個圖釘按鈕,按下後會提示你選擇要留在畫面上的功能,如下圖,我選擇了三個功能。

關閉SRDebugger後,就能看見三顆按鈕出現在右下角,我測試金錢作弊的功能後,確實可以正常使用唷!真是太方便了。

如果還想看更多參數的使用方式,SRDebugger也有提供範例文件,位置在 StompyRobot/SRDebugger/Scripts/SROptions.Test.cs

最後,如果大家想要了解更多使用SRDebugger的說明的話,就請參考官方文件吧:
https://www.stompyrobot.uk/tools/srdebugger/documentation/


留言