タイトル: プロジェクト(Project)
SEOタイトル: Unity Project (プロジェクト) 用語集完全ガイド
| この記事の要点 |
|
Unity Project とは
Unity Project(プロジェクト)とは、1 つのゲームアプリ・コンテンツを開発するために必要なすべてのファイルを含むルートディレクトリです。Visual Studio の Solution、Xcode の .xcodeproj に相当します。
Unity Hub から「新規プロジェクト作成」を行うと、指定パスに以下のような構造のディレクトリが作成されます。
標準ディレクトリ構成
MyGame/ ← プロジェクトルート
├── Assets/ ★ 自作リソース(Git 必須)
│ ├── Scenes/
│ │ ├── Main.unity ← シーン
│ │ └── Main.unity.meta
│ ├── Scripts/
│ │ ├── PlayerController.cs
│ │ └── PlayerController.cs.meta
│ ├── Prefabs/
│ ├── Materials/
│ ├── Textures/
│ ├── Audio/
│ └── Animations/
├── Packages/ ★ パッケージ宣言(Git 必須)
│ ├── manifest.json ← 依存パッケージ
│ └── packages-lock.json
├── ProjectSettings/ ★ プロジェクト設定(Git 必須)
│ ├── InputManager.asset
│ ├── ProjectSettings.asset
│ ├── QualitySettings.asset
│ └── TagManager.asset
├── Library/ ✗ 自動生成キャッシュ(Git 不要)
│ ├── ShaderCache/
│ ├── ArtifactDB/
│ └── PackageCache/
├── Temp/ ✗ 一時ファイル(Git 不要)
├── Logs/ ✗ ログ(Git 不要)
├── UserSettings/ △ ユーザー固有(任意)
└── MyGame.sln △ Rider/VS用(自動生成)
各フォルダの役割
| フォルダ | 内容 | Git 管理 |
|---|---|---|
| Assets/ | シーン / スクリプト / 画像 / 音声 / Prefab / マテリアル等の自作リソース | 必須 |
| ProjectSettings/ | レイヤー / タグ / 物理 / グラフィック等の全体設定 | 必須 |
| Packages/ | Package Manager の依存定義(manifest.json) | 必須 |
| Library/ | インポート結果・シェーダー・パッケージ実体のキャッシュ | 不要(環境ごと再生成) |
| Temp/ | セッション一時ファイル | 不要 |
| Logs/ | エディタログ | 不要 |
| UserSettings/ | 個人のレイアウト等 | 原則ignore(チーム方針次第) |
| obj/ / Build/ | C# ビルド成果物 / ゲームビルド出力 | 不要 |
主要なファイル拡張子
| 拡張子 | 意味 | 備考 |
|---|---|---|
| .unity | Scene ファイル | 1 ゲームに複数。YAML 形式 |
| .prefab | Prefab(再利用可能 GameObject) | YAML 形式 |
| .cs | C# スクリプト | MonoBehaviour / 通常クラス |
| .asset | ScriptableObject / 設定アセット | YAML 形式 |
| .mat | Material(マテリアル) | シェーダー + パラメータ |
| .anim | Animation Clip | |
| .controller | Animator Controller | ステートマシン |
| .fbx / .obj / .png / .wav | 3D / 画像 / 音声素材 | 外部ツールで作成 |
| .meta | アセット ID(GUID)と import 設定 | ★ Git で必ず追跡 |
| .unitypackage | アセット配布パッケージ | Asset Store の形式 |
.meta ファイルの重要性
Unity は各アセットに対し同名の .meta ファイルを自動生成し、GUID(一意の ID)を保存します。プレハブやスクリプトの参照関係はパスではなくこの GUID で管理されているため、.meta を Git に含めないと参照が壊れます。
# Player.cs.meta の例
fileFormatVersion: 2
guid: 7a3b5d2f8c1e4a4b9e6c2d1f3a8b5c0e ← 一意の ID
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Git での標準 .gitignore
# .gitignore (Unity 公式テンプレートベース)
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Uu]ser[Ss]ettings/
# Visual Studio
.vs/
*.csproj
*.sln
*.suo
*.user
# OS / IDE
.DS_Store
Thumbs.db
.idea/
# Unity 自動生成
sysinfo.txt
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Asset Store / 巨大バイナリは Git LFS 推奨
*.psd filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
Packages/manifest.json
Unity Package Manager の依存ライブラリ宣言。npm の package.json に相当します。
{
"dependencies": {
"com.unity.cinemachine": "2.9.7",
"com.unity.textmeshpro": "3.0.6",
"com.unity.inputsystem": "1.5.1",
"com.unity.render-pipelines.universal": "14.0.8",
"com.unity.addressables": "1.21.14",
"com.unity.ide.visualstudio": "2.0.18",
"com.unity.ide.rider": "3.0.21",
"com.unity.collab-proxy": "2.0.5",
"com.unity.test-framework": "1.1.33"
},
"scopedRegistries": []
}
Unity Hub での複数プロジェクト管理
Unity Hubは Unity 公式のランチャー兼バージョン管理ツールです。
- Projects タブ: 開いたことのある全プロジェクト一覧
- Installs タブ: 複数の Unity バージョン共存(2021.3 / 2022.3 / 6000.0 LTS など)
- Learn タブ: 公式チュートリアル
- Community タブ: アセットストア・フォーラム
同じプロジェクトを異なる Unity バージョンで開くと、Library が再生成されるためファイル整合性に注意(特にチーム開発)。
ProjectSettings の主要アセット
| ファイル | 内容 |
|---|---|
| ProjectSettings.asset | 会社名 / 製品名 / バージョン |
| InputManager.asset | レガシー Input 設定(Horizontal / Jump 等) |
| QualitySettings.asset | 描画品質プリセット |
| TagManager.asset | Tag / Layer / Sorting Layer |
| PhysicsManager.asset / Physics2DSettings.asset | 物理エンジン |
| AudioManager.asset | オーディオ・空間音響 |
| GraphicsSettings.asset | シェーダー・URP/HDRP 等の選択 |
| EditorBuildSettings.asset | ビルドに含めるシーン一覧 |
プロジェクトの新規作成
- Unity Hub を起動
- 「New project」をクリック
- Editor バージョンを選択(LTS 推奨: 2022.3 / 6000.0)
- テンプレートを選択(2D / 3D Core / URP / HDRP / Mobile 等)
- プロジェクト名・保存場所を入力
- 「Create project」
プロジェクトのバックアップ
Unity プロジェクトは Git 管理が基本ですが、それでも以下を別途バックアップすると安全:
- Git / GitHub / GitLab: Assets / ProjectSettings / Packages
- 大容量バイナリ: Git LFS / クラウドストレージ(OneDrive / Google Drive)
- 外付け SSD: プロジェクト全体(Library 含む)の定期スナップショット
- ビルド済みバイナリ: リリースタグごとに別保管
FAQ
Q: プロジェクトを別 PC に持っていきたい
A: 最低限 Assets / Packages / ProjectSettings をコピー。Library 等は不要。受け手側で Unity Hub から「Open project」、初回は Library 再生成で時間がかかります。
Q: プロジェクトサイズが大きすぎる
A: テクスチャ・FBX・音声の最適化(圧縮設定の見直し)、未使用アセット削除、Addressables への移行で配布サイズ削減。
Q: 別バージョンの Unity で開いたら警告が出る
A: Unity はプロジェクトのバージョンアップは不可逆です。事前に Git でブランチを切り、別バージョン専用にしておくこと。