C#(Unity)スクリプトに付けるフォルダ、ファイル、クラス名の一般的な命名規則を勉強するメモです。
※(会社・グループ内等で)規則が決まっている場合は、この記事を元に上書きしないでください。
(例)フィールドの「m_」の有無などは、所属している団体内で統一されているべきです。
命名規則
Unityのプロジェクトで使用するフォルダ名
フォルダ名は任意で指定する事が出来ます。
以下は特殊な扱いのフォルダ名です。
Assets
Assetsフォルダは、Unityのプロジェクトで使用されるアセットを含むフォルダです。
ProjectウインドウはAssetsフォルダに対応しています。
Editor
Editorフォルダ内のスクリプトは、Editorスクリプトとして扱われます。
開発中のエディタ拡張で使用するフォルダ名で、実行時のビルドでは使用できません。
(MonoBehaviourを継承したスクリプトがEditorフォルダ内に存在する場合GameObjectに追加できません)
Assetsフォルダ内に複数配置出来ます。また、EditorスクリプトをEditorフォルダ内(サブフォルダを含む)に配置します。
Editor DefaultResources
プロジェクトのルートに1つしか存在できません。パスから組み込みのリソースを読み込むEditorGUIUtility.Loadを使用する際に配置するフォルダです。
Gizmos
Gizmos(ギズモ)はジーンビューにアイコン、テクスチャなどを表示して見やすくするために使用します。使用する画像ファイルはGizmosフォルダに配置します。
プロジェクトのルートに一つしか存在できません。
Resources
Resourcesフォルダは、スクリプトから必要に応じてアセットをロードする場合に使用するフォルダ名です。
アセットをロードする際はResources.Load関数を使用します。読み込むアセットがサブフォルダにある場合はサブフォルダのパスを含めます。
Assetsフォルダ内に複数配置出来ます。※ロードするアセットのパスが重複する場合があります。
Resources/Assetのファイルパスが重複する場合の扱い、対処の参考文献。
- Unity 特有のパフォーマンス劣化の落とし穴 2018歳末ふりかえり – part 1
- トラブルシューティング – Unity DOCUMENTATION
- Resources フォルダを使用した各種ファイルの読み込み
これらによりResourcesフォルダの利用、機能の使用が公式より非推奨となっています。
Standard Assets
Standard Assetsフォルダは、Assets>Import Packageからインポートした”.unitypackage”が配置されるフォルダです。
プロジェクトのルートに一つしか存在できません。
StreamingAssets
StreamingAssetsフォルダは、アセットをビルドに直接含めず、ストリーミングアセットとして使用したい場合に使用します。
プロジェクトのルートに一つしか存在できません。また、フォルダ内の”.dll”、スクリプトファイルはコンパイルに関与されません。
無視されるフォルダ名(ファイル名)
- 隠しフォルダ
- ”.”で始まるフォルダとファイル
- ”~”で終わるフォルダとファイル
- cvsと名付けられたフォルダとファイル
- ”.tmp”拡張子のファイル
ファイル名
クラス名と一致させます。Unity上では特にファイル名と同じ名前のMonoBehaviourを継承したクラス名が含まれる場合コンポーネントとしてゲームオブジェクトにアタッチ出来ます。
スクリプト内の命名
Microsoft 名前に関するガイドラインより抜粋
名前空間名
接頭語として企業名を付けて、他の企業の名前空間との重複を避けます。
2レベルにはバージョン変更の影響を受けない製品名を付けます。
フィールド名
Camel形式、名詞や名詞句を使用します。
プロパティ名
名詞、名詞句または形容詞を使用します。
Getメソッドと同じ名前のプロパティを使用しない。(どのメンバーを使用したらよいか分からなくなるため)
private string targetName;//フィールド
// 修正前
public string GetTargetName(){
return targetName;
}
// 修正後
public string TargetName{//プロパティ
get { return targetName; }
}
ブール型のプロパティの名前には肯定的な名前を付ける。有益な場合は「Is, Can, Has」等のプレフィックスを付ける。
public bool IsActive;
配列やコレクション「~s」
クラス名
クラス名には名詞を用います。
メソッド名
メソッド名には動詞や動詞句を用います。
参考・その他
参考文献
その他
都度変更・修正します。
コメント