何時ごろからか、Unityのエディタ設定に追加されていた「C# Project Generation」の機能について紹介します。
この機能は簡単に言えば、MonodevelopやVisual Studioに関連する機能で、生成するスクリプトにNamespaceを付与したり、IDEから識別することが出来る拡張子を増やしたりする事が出来る機能です。
C# Project Generation
C# Project Generationの設定はEditor Settingsに含まれます。メニューバー>Edit>Project Settings>Editorから設定することが出来ます。この項目を開くと、一番下にあるのがソレです。
この設定を変更後、たぶんメニューバー>Assets>OpenC#を選択すると、設定が反映されます。
Additional extensions to includeでIDEから見れる拡張子を増やす
まずはAdditional extensions to includeですが、これはIDE・・・Visual StudioやMonodevelopがSolusionで表示する拡張子を増やす事が出来ます。
例えばCSVやTEXT、XMLやJSONをMonodevelopから編集しようとするとFinderやExplorerから起動する必要があるのですが、ここで設定しておくとIDEから編集出来るという訳です。
フォーマットは、「;」で各拡張子を区切る感じです。
個人的に使えそうだと思ったのが、「unity」や「prefab」「asset」を追加する事でプロジェクト内のGUIDを一括検索・一括置換が可能になる事です。
これを使うと、例えば任意のアセットのmetaからGUIDを取得してプロジェクト内検索かける事で、該当のアセットを参照しているプレハブやシーンの一覧が一発で分かります。
例えば下のGIFアニメでは、Blueマテリアルを参照してる全シーン(stage.unityとdemo.unity)を検出しています。Find in Filesを使用すると、IDEに登録されているファイルを全検索します。
まあYAMLを手動更新するのは色々と嫌な予感がありますが、これはこれで意外と便利な気がします。
なお、何故か拡張子metaは追加する事が出来ません。解せぬ…
生成するスクリプトにNamespaceを付与
次にRoot Namespaceについてです。この機能はシンプル、生成したコードに自動的に設定したnamespaceが付きます。下の図だと、Hogehogeと設定して置いたのでHogehogeの名前空間が付与されましたやったね。
さて、この機能ですが「IDEで作成したコード」にしか適応されません。つまり、UnityのCreate>C#で生成したコードにはnamespaceが付かない…という訳です。解せぬ...