
挨拶
人生で最大級避けたいことに「飲み会の席での挨拶」を挙げている話下手な皆さんこんにちは。なぜ日本の会社って飲み会の席で「新人だから」「異動するから」「一年の締めくくりだから」と何かと理由をつけて人に挨拶をさせようととするのか疑問です。果ては「久しぶりだから」なんて理由で参加者全員が何か一言求められるとか意味わからん。日本特有のこういった悪習は早く廃れて欲しい。
展示会
5月、6月と二か月続けて制作中のリズムゲーム「Under A Groove」がインディーゲーム展示会への出展が決まりました。
どちらの展示会も公式から(出展リストの)発表がされていないので明言はできませんが、このペースだと去年よりも多くの展示会に参加できそうで非常に有難いです。
今回参加の決まった展示会はどちらも年始の段階では想定に入れてなかった展示会で「夏場まではどこにも出展できそうにないなぁ」とか思っていたので、ここに来て急に5,6月のスケジュールが埋まって非常に驚いています。
(まぁ、出展を狙っていた地元開催の展示会が思っていたのとは違う形態で参加できなかった、というハプニングもありますが)
両展示会ともに私の地元からは遠方での開催となるので、旅費がかさむのが痛い所ですが、その分、多くの人の目に触れる機会が得られるという事なので気合を入れて開発を進めたいと思います。
SRDebugger
Youtubeでゲーム制作関連の動画を漁っていると「Unityで開発をする際に必ず導入すべきアセット」として紹介されていたので気になって購入してみました。
Unityでゲーム開発をしていると偶に「Unityエディタ上は発生しないのに実機では発生するバグ」というものに遭遇します。
これは非常に厄介でエディタ上で再現しないのでログからバグの解析を進めることになるのですが、ログも長大になるとバグの発生したタイミングのログの場所を探すに一苦労ですし、AndroidやiOS用のスマホゲームの場合なら、そもそもログファイルを探してPC上で確認するのも大変になると思います。
また、性能関連(急に動作が遅くなるなど)の調査については、スマホ向けPC向けに限らず動作時のプロファイラーをリアルタイムで確認したい所です。そういった
- 実機でコンソールログを確認したい
- 実機でプロファイラーを確認したい
上記のような機能を手軽に実現出来るアセットが今回紹介する「SRDebugger - Console & Tools On-Device」です。
導入
アセットストアから購入後、ProjectManagerからプロジェクトにインポートするだけで導入可能です。特に必要となるセットアップ作業はありません。
導入後はシーンを実行するとGameビュー内の左上に見えない矩形が配置されるようになるので、その箇所を三回クリック

すぐにSRDebuggerを起動することが出来ます。
SRDebuggerの画面を表示すると最初は使用しているPCのシステム(CPUとかOSとか)が表示され、左横のメニューからコンソールやプロファイラーに切り替えます。
また、右上のピンアイコンをクリックして×アイコンをクリックすると現在表示しているSRDebuggerの画面が縮小表示され、ゲーム動作を確認しながらSRDebuggerの画面をチェックできます。

これらの操作は実機上でも行えるのでゲームを製品として正式にリリースする際には当然ながらOFFにする必要があります。
製品版ビルド時にはWinodw > SRDebugger > Settings WindowからSRDebuggerの設定画面を開き

TrigerModeをOFFにするかDevelopment Builds Onlyなどにしておきましょう。

オプション機能
オプション画面には導入直後は何も表示されません。オプション画面にはデバッグとしてゲーム実行中に変更したい値を後述するSROptionクラスに定義して、この画面で値を変更します。
例えば、ゲーム全体のタイムスケールを0にして一時停止を確認したり、シーン中のライトをON/OFFしたり、特定のスクリプトで参照しているプロパティの値などを随時変更したい場合などに使用します。

オプション画面からシーン中のライトのON/OFFをしたりする
オプション画面に表示する値はSROptionsクラスのpartialクラスとして作成します。SROptionsクラスはAssetes/StompyRobot/SRDebuggerのSROptionフォルダに格納されているので、それと同じフォルダにpartialクラスを作成することをお勧めします。

というのもAssembly Definitionを利用してアセンブリを分割している場合、SROptionsクラスをAPI化して参照設定する必要があり、その際にはSROptionsクラス本体とpartialクラスは同じフォルダ内に存在する必要があるからです。
アセンブリを分割していない場合はどの場所にでもpartialクラスは作成可能ですがSRDebuggerはプロジェクト内のどこからでも参照されるので、後々混乱がないように同じ場所に作成しておくのが吉だと思います。
オプション機能を使ったデバッグについては長くなるので次回に紹介したいと思います。