読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】C# Project Generationで標準namespaceを設定したり、アセットを参照してるシーン・プレハブをIDEから検索かけたり。

何時ごろからか、Unityのエディタ設定に追加されていた「C# Project Generation」の機能について紹介します。

f:id:tsubaki_t1:20160208213131j:plain

この機能は簡単に言えば、MonodevelopVisual Studioに関連する機能で、生成するスクリプトにNamespaceを付与したりIDEから識別することが出来る拡張子を増やしたりする事が出来る機能です。

C# Project Generation

C# Project Generationの設定はEditor Settingsに含まれます。メニューバー>Edit>Project Settings>Editorから設定することが出来ます。この項目を開くと、一番下にあるのがソレです。

f:id:tsubaki_t1:20160208213739j:plain

この設定を変更後、たぶんメニューバー>Assets>OpenC#を選択すると、設定が反映されます。

Additional extensions to includeでIDEから見れる拡張子を増やす

まずはAdditional extensions to includeですが、これはIDE・・・Visual StudioMonodevelopSolusionで表示する拡張子を増やす事が出来ます。
例えばCSVやTEXT、XMLJSONMonodevelopから編集しようとするとFinderやExplorerから起動する必要があるのですが、ここで設定しておくとIDEから編集出来るという訳です。

フォーマットは、「;」で各拡張子を区切る感じです。

f:id:tsubaki_t1:20160208214404j:plain

個人的に使えそうだと思ったのが、「unity」や「prefab」「asset」を追加する事でプロジェクト内のGUIDを一括検索・一括置換が可能になる事です。

これを使うと、例えば任意のアセットのmetaからGUIDを取得してプロジェクト内検索かける事で、該当のアセットを参照しているプレハブやシーンの一覧が一発で分かります
例えば下のGIFアニメでは、Blueマテリアルを参照してる全シーン(stage.unityとdemo.unity)を検出しています。Find in Filesを使用すると、IDEに登録されているファイルを全検索します。

f:id:tsubaki_t1:20160208221344g:plain

まあYAMLを手動更新するのは色々と嫌な予感がありますが、これはこれで意外と便利な気がします。

なお、何故か拡張子metaは追加する事が出来ません。解せぬ…

生成するスクリプトにNamespaceを付与

次にRoot Namespaceについてです。この機能はシンプル、生成したコードに自動的に設定したnamespaceが付きます。下の図だと、Hogehogeと設定して置いたのでHogehogeの名前空間が付与されましたやったね。

f:id:tsubaki_t1:20160208221901j:plain

さて、この機能ですが「IDEで作成したコード」にしか適応されません。つまり、UnityのCreate>C#で生成したコードにはnamespaceが付かない…という訳です。解せぬ...

関連

tsubakit1.hateblo.jp