Unityプロジェクトの初期設定およびフォルダ構成管理ガイド

Unity プロジェクトを Git 管理する際、Git は空のフォルダを追跡しないため、Assets 内の空ディレクトリがリポジトリに含まれません。そのため、空フォルダを確実に管理下に置くには、各フォルダに .gitkeep ファイルを配置する必要があります。本ガイドでは、その手順と解説をまとめています。


1. 前提

  • Unity プロジェクトのルートに Assets/ フォルダが存在していること。
  • Git リポジトリを初期化済み(git init)であること。
  • 以下の各フォルダに .gitkeep を配置することで、空フォルダを Git に登録できる:
    • Assets/Scripts
    • Assets/Scenes
    • Assets/Prefabs
    • Assets/Textures
    • Assets/Models
    • Assets/Animations
    • Assets/UI

2. 各 OS 環境での手順と解説

作業ディレクトリ移動
作業を始める前に、ターミナル/シェルでプロジェクトのルートフォルダへ移動します。

  • PowerShell/CMD.exe (Windows):
    • 起動方法
      Windowsアイコンを右クリックして、ターミナル(管理者)を選択
  • Unix 系 (bash, zsh, Git Bash, WSL, Cygwin など):
cd /path/to/YourUnityProject

プロジェクトフォルダの一覧を表示したエクスプローラと、PowerShellを同時に開いておきます
プロジェクトフォルダをドラッグしながらPowerShellにドラッグすると、次のような自動入力されます
改行を押下すると、作業用フォルダが移動されます

cd C:\Users\<ユーザー名>\Desktop\UnityProjects\MyProject
cd "C:\Users\<ユーザー名>\Desktop\UnityProjects\My project"

パスにスペースが含まれる場合は必ず"で囲んでください。
<ユーザー名> は実際の Windows のユーザー名に置き換えてください。

移動後は以下の OS ごとの手順に従ってください。

2.1 PowerShell

配列を使った一括実行

# フォルダリストを配列で定義
$folders = @(
  'Assets\Scripts',
  'Assets\Scenes',
  'Assets\Prefabs',
  'Assets\Textures',
  'Assets\Models',
  'Assets\Animations',
  'Assets\UI'
)

# -Force を付けることで、既に存在するフォルダがあってもエラーになりません
mkdir -Path $folders -Force

$folders | ForEach-Object {
  # New-Item -Force で既存の .gitkeep を上書き(空ファイル)または新規作成
  New-Item -Path (Join-Path $_ '.gitkeep') -ItemType File -Force
}

解説

  • -Path オプション: 複数パスを配列で受け取れるため、まとめてフォルダ作成が可能。
  • -Force: 既存のフォルダ/ファイルを上書きエラーなしで作成します。
  • Test-Path: 指定パスの存在有無をチェックし、処理の制御に利用。
  • Join-Path: パス結合を安全に行うユーティリティ関数。
  • Out-Null: コマンドの出力を抑制し、画面をスッキリさせます。

2.2 Linux/macOS(bash, zsh など)

手順

# 1) ディレクトリをまとめて作成
mkdir -p \
  Assets/Scripts \
  Assets/Scenes \
  Assets/Prefabs \
  Assets/Textures \
  Assets/Models \
  Assets/Animations \
  Assets/UI

# 2) 各フォルダに .gitkeep ファイルを作成
for dir in \
  Assets/Scripts \
  Assets/Scenes \
  Assets/Prefabs \
  Assets/Textures \
  Assets/Models \
  Assets/Animations \
  Assets/UI; do
  touch "$dir/.gitkeep"
done

解説

  • mkdir -p: 親ディレクトリが存在しない場合もまとめて作成し、既存時はエラーを無視します。
  • for dir in ...; do ...; done: シェルのループ構文で、指定した複数フォルダを順番に処理。
  • touch: ファイルのタイムスタンプを更新。ファイルがなければ空ファイルを生成します。

2.3 Git Bash/WSL/Cygwin(Unix ライク環境)

手順

# 1) ディレクトリまとめて作成
mkdir -p Assets/Scripts Assets/Scenes Assets/Prefabs Assets/Textures Assets/Models Assets/Animations Assets/UI

# 2) .gitkeep ファイルを一括作成
for dir in Assets/Scripts Assets/Scenes Assets/Prefabs Assets/Textures Assets/Models Assets/Animations Assets/UI; do
  touch "$dir/.gitkeep"
done

解説

  • Windows 上でも Unix 環境を用意すれば、Linux/macOS と同じコマンドがそのまま利用できます。

3. 共通のポイントとトラブル対策

  • .gitkeep の役割: Git は空フォルダを追跡しないため、空ファイルを置くことでフォルダを保持できます。
  • エイリアス設定(PowerShell): プロファイルに Set-Alias touch New-Item を追加すると、Unix ライクに touch を使えるようになります。
  • GUI ツール併用: GitHub Desktop などで構成を視覚的に確認し、コミット漏れを防止しましょう。
  • 権限エラー-Force が効かない場合は、管理者権限でターミナルを起動してください。

以上の手順と解説をもとに、どの OS 環境でも統一的に Unity プロジェクトのフォルダ構成を Git 管理下に置けます。