马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
本章要来介绍这款超好用的插件『SRDebugger』。插件支援Real-time Console,运作游戏时如果出现Bug,或是程式撰写的Debug.Log,都会出现在Console画面。另外,还有Options Tab的功能,类似游戏作弊用控制台,可以撰写类似『无限血量』、『自动跳关』等方便测试的功能,亦能输出一些重要的讯息。
SRDebugger - Console & Tools On-Device https://assetstore.unity.com/packages/tools/gui/srdebugger-console-tools-on-device-27688
首先,当你安装好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)的简化版做法。
SROptions被声明为部分类,这使您可以将该类拆分为多个文件。我们建议为每个选项类别创建一个新文件,例如:SROptions.Gameplay.cs,SROptions.Debug.cs,SROptions.Cheats.cs。 在这些文件中,您应该声明一个具有以下签名的类: public partial class SROptions { }
写好以后执行游戏测试,打开介面就会出现如下图的三颗按钮啦!按下去就可以作弊了。
Supported Type
除了按钮以外,我们也可以控制变数,SROptions支援Boolean, Enum, int, uint, short, ushort, byte, sbyte, float, double, and string。比方说我想制作一个『金钱作弊』的功能,要在SROptions中调整金钱数量,控制作弊变数有两种方式:
1.如下图,宣告变数CheatCoin并设定get/set,再有需要的地方使用SROptions .Current.CheatCoin取得即可。官方建议使用第一种方式。
在SRDebugger的options面板设置值时会触发set,如果set为private,则options面板下无法进行修改。
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/
|