プログラミングで世界を変える

ゲームプログラミングと技術のこと

【Unity】タイプセーフにリソースやタグの記述ができるアセット「TypeSafe」の使い方

f:id:splas_boomerang:20170730015713p:plain

SRDebuggerでお馴染みのStompy RobotがリリースしているTypeSafeというアセットの紹介です。

TypeSafe - アセットストア

大体こんなアセット

以前コガネブログさんが書かれていたこの記事とやっていることはほぼ同じです。 baba-s.hatenablog.com

Unity上ではタグ、レイヤー、シーンなどをコード上で扱う場合に文字列を指定する必要がありますが、参照している訳ではないので誤った文字列や、変更があった場合などにコンパイラ上でそれを検知することができません。TypeSafeではこれらを定数として扱えるようにするため、自動的に定数を持つクラスを生成する機能を提供しています。

f:id:splas_boomerang:20170730010800g:plain:w500

この定数はタグを追加した場合に自動的に更新処理が走り、自動生成クラスにも反映されます。

TypeSafeはもう一つの強力な機能を持っていて、それがリソースの管理です。

f:id:splas_boomerang:20170730013136g:plain:w500

TypeSafeはリソースファイルも階層構造に合わせて定数化をしてくれるため、コード補完を辿って簡単に参照をすることができます。変換演算子で型まで参照できるのも強力です。

また、リソース名や階層構造に変更があった場合でも自動的に検出し、自動生成クラスにも反映してくれます。そのため、既存のコード上ではコンパイルエラーが発生し、修正すべき箇所を知ることができるのです。

使い方

アセットをインポートするとこのようなダイアログが表示されます。

f:id:splas_boomerang:20170730014046p:plain:w250

そこで「Start Scan」をクリックすることで上記で紹介した定数クラスが生成されます。

以降はTypeSafeが自動的に変更を検知してくれるため、常に自動生成クラスは最新に保たれていると考えて良いと思います。

f:id:splas_boomerang:20170730014151p:plain:w250

Assets > TypeSafe Refresh で再度生成しなおすことも可能です。

また、TypeSafeでは SRResources , SRTags といったクラスを通して定数へのアクセスが可能ですが、名前空間であったり、prefixは自由にカスタマイズすることも可能です。

f:id:splas_boomerang:20170730014756p:plain:w250

Window > TypeSafe > OpenSettings を選択し、

f:id:splas_boomerang:20170730014838p:plain:w250

表示されたダイアログのName Schemeタブで詳細な設定が可能です。