(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]



RiderのFile TemplatesをUnityで使うと、スクリプトファイルのテンプレを複数作れてコンパイルも発生せず超便利【Unity】【エディタ】【JetBrains Rider】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2019.4.17f1
JetBrains Rider 2020.3.2


はじめに

Unityはスクリプトファイルのテンプレが一つしか作れないので、



以前、いくらでもテンプレを作れるような拡張機能を作ったのですが、



Unityでも使えるエディタであるRiderにはFile Templatesという

ファイルのテンプレートを作る機能があります。

しかもだた定型文のファイルを作るだけではなく、生成時にある程度内容を変更出来るので、

より効率的にスクリプトファイルの作成が出来ます。

f:id:kan_kikuchi:20210209081136g:plain


もちろんこの機能でC#のテンプレも作れますし、いくつでもテンプレを作成する事が可能です。


さらにmetaファイルの生成までやってくれるので、Unity上でファイルを作るのと同じ感覚で使えますし、

Rider上で生成すればUnityに戻るまではコンパイルの待ち時間(右下がクルクルなるやつ)もありません。


ちなみにファイルの移動をした時もmetaファイルの移動も一緒にやってくれるので、

移動で参照が切れたりせず、これもUnity上と同じ感覚で気軽に行えます。


ということで今回はFile Templatesの使い方の解説記事です!


ちなみにRiderとはUnityでも使える便利なエディタの事で、

導入方法については以下の記事を参照の事。





File Templates

まずFile Templatesの設定は上部メニューにある

JetBrains Rider/Preferencesで開けるウィンドウの

f:id:kan_kikuchi:20210129075853j:plain


Editor/File Templates/Unityから行います。

f:id:kan_kikuchi:20210131115338j:plain


新たにテンプレを追加する場合は右上の一番上のボタンを押します。

(二番目は選択してるテンプレを複製し、三番目は削除)

f:id:kan_kikuchi:20210208080537j:plain


左下の欄でコードを編集します。

なお、$で括る事によりその部分をファイル作成後に自由に変更出来るようになります。

また、同じ文字列の場所は一つを変更すると全て同時に変わります。

f:id:kan_kikuchi:20210209071801j:plain


$で括るだけだと全て手動で入力する必要がありますが、Edit variablesから開けるウィンドウの

f:id:kan_kikuchi:20210209071823j:plain


Change macroからマクロを登録すると、状況に合わせて自動で入力する事も可能です。

(Editableを有効にしておけば手動で入力することも可能)

f:id:kan_kikuchi:20210209074043j:plain


例えば以下の例だと英数字のみのファイル名(拡張子なし)になります。(クラス名によく使うやつ)

f:id:kan_kikuchi:20210209074055j:plain


あとはデフォルトのファイル名(=テンプレ名)と説明を設定し、

f:id:kan_kikuchi:20210209074353j:plain


クイックリストに入れ、

f:id:kan_kikuchi:20210209074257j:plain


Saveから保存をすれば使えるようになります。

なお、This computerで保存すればどのプロジェクトでも使えるようになります。

f:id:kan_kikuchi:20210209072027j:plain


使い方はExplorerウィンドウ(開いてない時はクリックすれば開く)で右クリックし、

Addを選ぶとクイックリストに登録したテンプレが表示されるので、

任意の物を押してファイル名を入力するだけ。

f:id:kan_kikuchi:20210209074742j:plain


実際に以下のテンプレを使ってみると

f:id:kan_kikuchi:20210209075256j:plain
$CLASS$はファイル名から自動入力
$Type1$と$Type2$は手動で入力
$type1Name$は$Type1$($type2Name$は$Type2$)の頭文字を小文字にした物
$Type1Name$は$type1Name$($Type2Name$は$type2Name$)の頭文字を大文字にした物
$Type1Copy$は$Type1$($Type2Copy$は$Type2$)と同じ物


以下のような感じに。

f:id:kan_kikuchi:20210209081136g:plain


なおGroupを設定すると、

f:id:kan_kikuchi:20210209074753j:plain


同じGroupが設された物をまとめてグループとして表示するようになります。

f:id:kan_kikuchi:20210209074807j:plain
f:id:kan_kikuchi:20210209074819j:plain


ちなみにディレクトリの作成も可能なのですが、

f:id:kan_kikuchi:20210211064658j:plain


ディレクトリを常に上に表示出来る設定が地味に便利です。

f:id:kan_kikuchi:20210211064742j:plain


余談ですがC#(.cs)のテンプレだけでなく、

アセンブリ定義ファイル(.asmdef)やシェーダー(.shader)等のテンプレも作成可能です。