Unityスクリプトのフォルダ構造、アセンブリ、名前空間を一気に弄れるツール
動機
Unityはソースコードの整理にフォルダ構造、名前空間、アセンブリ定義ファイルが使える ガチャガチャ組み替えて理想の形にした後にApplyボタンで一括適用出来るようにしたい
あると嬉しい機能
Loadボタンで今の状態を読み込む
Applyボタンで適用する
スクリプトファイル単位で読み込み
各分類がレイヤーになっていてレイヤーの非表示が出来る
自動整理
編集中の再コンパイルにもある程度耐える
一つの.csファイル内には一つの名前空間に限定
特定のルールにしたがって自動的に変更
名前空間はフォルダに従うとか
名前空間変更時に参照も変更
自動でアセンブリ参照を追加
各分類の特徴考察
ツリー構造
フォルダパスは重複しない
特定のフォルダ内に含まれるファイルの全削除が出来る
ファイルシステム上のフォルダとして定義が目に見える
グループ構造
アセンブリ名は重複しない
特定のフォルダ内に含まれるファイルの参照範囲を明確に制限できる
名前空間より強い
階層構造にシステム的な意味はない
ツリー構造
スクリプトファイル毎
分散定義
同じ名前空間のスクリプト同士はアクセス出来る
usingさえすれば全然違う名前空間にもアクセスできる
特定の階層より上位の名前空間のファイルにアクセスできる
Hoge.Fuga名前空間からHoge名前空間のファイルにアクセスできる
全部階層構造に出来なくはない
全部同時に別のところに所属は出来ない
名前空間は?
各分類使われ方考察
フォルダ構造
ファイルシステム上で分類しやすくする
アセンブリ
スクリプトの参照範囲を明確に制限する
名前空間
コンテキストの衝突を防ぐ
モジュール単位でフォルダを分けた上でアセンブリを切り、さらに細かく名前空間+サブフォルダで分類するのが一般的? プロジェクトを読み込む
全てのスクリプトファイルが読み込まれる(フォルダ構造、アセンブリ、名前空間も設定される)
GUIで整理する
最後にApplyを押すと、設定した通りに整理される
途中で構造が変わった場合は再読み込みする
/icons/hr.icon
アセンブリに所属させるには、アセンブリ定義ファイルがあるディレクトリかそのサブディレクトリに移動させる
フォルダ構造とアセンブリは密接な関係がある
古い配置と新しい配置を内部に保持
スクリプトファイルはアセンブリを知る必要が無い
アセンブリはフォルダに紐づくので