エディタ拡張

【Unity】プロジェクトウィンドウを右クリックした時のメニューにScriptTemplatesフォルダを開くメニューを追加する

Unityの %EDITOR_PATH%\Data\Resources\ScriptTemplatesフォルダにスクリプトテンプレートファイルを置くと、プロジェクトを右クリックした時の 作成Scriptingから選べるテンプレートを増やすことができます。

Unity Hubを使ってインストールしている場合の%EDITOR_PATH%(Windows)
C:\Program Files\Unity\Hub\Editor\バージョン\Editor

私はエディタ拡張用のCustomWindow、CustomInspector、PropertyDrawerやScriptable Objectのスクリプトテンプレートなどを増やしています。
Unity スクリプトテンプレートを追加

スクリプトテンプレートの追加や更新をしたい時によくフォルダの場所を忘れるので、プロジェクトウィンドウを右クリックした時のメニューにScriptTemplatesフォルダを開くメニューを追加するエディタ拡張を作成しました。

デフォルトである「エクスプローラーで表示」はUnityじゃなくてプロジェクトがある場所が開きます。

スクリプトテンプレートフォルダを開くエディタ拡張のサンプルコード

プロジェクトのAssetsフォルダ内に、Editorフォルダを作ってエディタ拡張用のスクリプトを作成します。
ファイル名はAdvancedProjectContextMenu.csとしました。

パスのところを変更して増やせば、便利なショートカット集も作れそうです。

[MenuItem]属性の引数

引数 説明
itemName 追加するメニューの場所とメニュー名をパス形式で指定。
プロジェクトウィンドウで右クリックした時のメニューはAssets/メニュー名。
ヒエラルキーウィンドウで右クリックした時のメニューはGameObjects/メニュー名。
isValidateFunction バリデート関数か。
条件によってメニューの有効・無効を切り替えたい時にtrueにし、下にbool値を返す関数を記述する。
関数の戻り値がtrueの時にメニューが有効化、falseの時にメニューが無効化される。

isValidateFunctionがfalseの時は、常にメニューが有効化する。

priority メニューの優先順位。
数字が低いものほどメニューの上に表示される。
デフォルトの「作成」のpriorityは20。

本当は作成の下にメニューを追加したかったんですが、作成~パッケージをエクスポートまで同じ優先順位「20」が割り振られていて微調整がきかなかったです。

参考サイト