CamelCase
UpperCamelCaseは単語の先頭文字が大文字。他は小文字
例:PlayerController,HyperTextTransfarProtocol,HelloWorld
LowerCamelCaseは最初の単語の先頭文字が小文字。以降の単語の先頭の文字は大文字。他は小文字。
例:mousePointer,gameObject,eyeTracker
Camelはラクダでフタコブラクダをイメージすると分かりやすいかも。
UpperCamelは前のコブが大きくて後ろのコブは小さい。
LowerCamelは前のコブが小さくて後ろのコブは大きい。
ファイル構成
ここが決まってないとごちゃごちゃしてしまうので、
SceneはAssets/Scenes/フォルダ内に保存。
ScriptはAssets/Scripts/フォルダ内に保存。
PrefabはAssets/Prefabs/フォルダ内に保存。
MaterialはAssets/Materials/フォルダ内に保存。
みたいな形で保存する。
ユーティリティー
HTTP通信とかPlayerPrefsのラッパー(ユーティリティースクリプト)とかをよく作るので、
Assets/Utils/フォルダ内にユーティリティースクリプトファイルを作成する。
名前空間をUtilsにしてその中に静的クラスなり関数なり定義する。
例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Utils{
class Palette{
static const Color primary = new Color(0f, 0.5f, 1.0f);
static const Color primary = new Color(0f, 0.1f, 0.5f);
static const Color accent = new Color(1.0f, 0f, 1.0f);
}
}
命名規則
ここも色々とわけないと後から困るので...
メンバ変数
lowerCamelCaseで命名する。
例:
float playerSpeed;
メンバ定数
UpperCamelCaseで命名する。
例:
const string RoomKey = "xxx-xxx-xxx";
メソッド
UpperCamelCaseで命名する。
例:
void SetPlayerSpeed(float value) { this.playerSpeed = value; }
セッター/ゲッター
UpperCamelCaseで命名する。
例:
float PlayerSpeed {
get { return this.playerSpeed; }
}
Scene
UpperCamelCaseで命名する。
例:Game,Result
シーンに1つコントローラー
シーンに1つシーンの全体的な処理を管理するコントローラースクリプトとオブジェクトを作成します。
コントローラースクリプトとコントローラーオブジェクトは同じ名前にする。
命名規則はScene名+Controller
コントローラーオブジェクトにはコントローラースクリプトをアタッチする。
共通部品
プレイヤー名入力フィールドなどのいろいろなところで使うUIなどは共通部品とする。
共通部品はPrefab化する。
共通部品は専用Scriptを持たせる。
例:プレイヤー名を保存するスクリプトなど
オブジェクト名
UpperCamelCaseで命名。