🎓Unity × GitHub × Visual Studio(ChatGPT様Says)
🎯 目的
Unity プロジェクトを GitHub で安全に管理し、Visual Studio から快適に操作するための手順をまとめました。
この資料を見れば、チーム制作でも壊れないUnityリポジトリ構成が理解できます。
🧩 1. Unity 側の設定
① Editor 設定を変更する
メニューから
「Edit → Project Settings → Editor」 を開きます。
設定項目 | 値 |
|---|---|
Version Control | Visible Meta Files |
Asset Serialization | Force Text |
これにより、ファイルごとの変更がテキスト化され、Gitで差分が取れるようになります。
② Unity バージョンをそろえる
全員が同じ Unity LTS(例:2022.3系) を使うこと。ProjectSettings/ProjectVersion.txt が一致しているか確認しましょう。
📁 2. .gitignore の設定
Visual Studio の「Git」メニューから
[.gitignore を追加] → Unity テンプレート選択。
.gitignoreテンプレートからUnity探して選ぶ!
その後、以下を確認または追記します。(これは自分で、プロジェクトフォルダの.gitignoreを開いて編集
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild*/
[Bb]uilds/
[Ll]ogs/
UserSettings/
*.csproj
*.sln
*.user
.vs/✅ ポイント
Library/はGitに入れない(巨大・自動再生成される).metaファイルは削除禁止(参照リンク切れ防止)
なんか、長いバージョンもあったよ。
.gitignore(Library を絶対入れない)
Unity公式テンプレをベースに。最低限これでOK:
# Unity build cache
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild*/
[Bb]uilds/
[Ll]ogs/
[Mm]emoryCaptures/
# User-specific
[Ss]ysinfo.txt
UserSettings/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
# Autogenerated
*.apk
*.aab
*.app
*.ipa
# Visual Studio cache
.vs/💻 3. Visual Studio での Git 操作
① 新しいリポジトリを作成
Git → 新しいリポジトリの作成
② コミットとプッシュ
Git Changes ウィンドウで変更内容を確認し、
メッセージを入力して [コミットしてプッシュ]
③ ブランチの作成と切り替え
Git Branches ウィンドウから操作可能。
例:feature/player-move や fix/audio-lag など。
④ リモートを登録する
Git → リモートの管理 → GitHub のURLを追加
🪶 4. Git LFS(大容量ファイル管理)
① LFSとは?
Unityの画像・音声・FBX・動画ファイルなどをGitHubの100MB制限に引っかけずに保存する仕組みです。
自分のリポジトリのフォルダをコマンドプロンプトで開いて、以下のコマンドでgit-lfsを有効化
なんか言われたら全部Yes!
winget install --id GitHub.GitLFS -e② 設定手順(最初の1回だけ)
Visual Studio の 「表示 → ターミナル」 を開き、以下を入力:
git lfs install
git lfs track "*.psd" "*.png" "*.jpg" "*.tga" "*.fbx" "*.wav" "*.mp4"
git add .gitattributes
git commit -m "Add LFS tracking"
.gitattributesファイルが作成されます。
これをリポジトリに含めることで他の人も自動的にLFSを有効化できます。
🧠 5. SmartMerge(Unity YAML Merge)
① 目的
シーンやPrefabの競合を「自動で統合」してくれるUnity公式ツールです。
Gitに登録しておくと、複数人編集の事故が大幅減少します。
② 設定コマンド(最初の1回のみ)
Windows:
git config --global merge.unityyamlmerge.driver \
"\"C:/Program Files/Unity/Hub/Editor/2022.3.XX/Editor/Data/Tools/UnityYAMLMerge.exe\" merge -p %O %A %B %A"macOS:
git config --global merge.unityyamlmerge.driver \
'"/Applications/Unity/Hub/Editor/2022.3.XX/Unity.app/Contents/Tools/UnityYAMLMerge" merge -p %O %A %B %A'③ .gitattributes に対象拡張子を追加
*.unity merge=unityyamlmerge text eol=lf
*.prefab merge=unityyamlmerge text eol=lf
*.mat merge=unityyamlmerge text eol=lf
*.anim merge=unityyamlmerge text eol=lf
*.asset merge=unityyamlmerge text eol=lf✅ 6. 日常運用チェックリスト
チェック項目 | 内容 |
|---|---|
☐ Library フォルダが含まれていない |
で除外 |
☐ .meta ファイルを削除していない | 参照切れを防ぐため |
☐ Pull → 作業 → Commit → Push | 作業前に最新状態を取得 |
☐ Additive Scene / Prefab 分業 | 同時編集の競合を避ける |
☐ Unity バージョン統一 | チーム内で固定する |
📁 推奨フォルダ構成(チーム開発用)
Assets/
├─ _Scripts/
├─ _Art/
├─ _Audio/
├─ _Prefabs/
└─ Scenes/
Packages/
ProjectSettings/
.gitignore
.gitattributes
README.md📘 参考リンク
典型的なトラブル回避 “7 か条”
- メタファイルを必ずコミット(Visible Meta Filesが前提)。メタ欠落=参照切れ地獄。
- 1シーン=1人原則で作業(Additive SceneやPrefab分割で並行開発)。
- Packages/manifest.json と packages-lock.json をコミット(依存固定)。
- 外部DLL/SDKは UPM か
Assets/Pluginsに整理(配布手順もREADMEに)。 - 巨大アセットはLFS、履歴を肥やさない。不要ファイルは早めに
git rm。 - ブランチ運用:
mainは常に動く/開発はfeature/xxx/PRでレビュー → マージ。 - GitHub 100MB制限を意識(超過前にLFS。履歴に入った巨大ファイルは
git lfs migrateで修正)。
初期セットアップ(手順書テンプレ)
- プロジェクト新規作成 → 設定変更(Visible Meta / Force Text)
.gitignoreと.gitattributes配置、git init→ 初回コミットgit lfs install→ 大型拡張子をgit lfs track- UnityYAMLMerge を
git configに登録 - GitHubにcreate repo →
git remote add origin ...→git push -u origin main - チームへUnityバージョン・ブランチ運用・シーン分割規約を共有
日々のワークフロー(短縮版)
- 作業前:
git pull --rebase - 作業:新規ブランチで、シーンはAdditive化・Prefab化して分業
- コミット:小さく早く。メタも含めて
git add -A - PR:スクショ/動画/GIF付きで意図を説明 → レビュー → マージ
- 衝突:まずSmartMergeに任せる → ダメならUnityで開いて手作業修正
授業・組織運用の小ワザ
- テンプレートリポ(Starter Code)を作って、GitHub Classroomで配布
- プリフック(任意):
Library/をステージしようとしたら弾くpre-commit - 命名規則:
feature/ui-login、fix/physics-jitterなど - アセット置き場規約:
Assets/_Art,Assets/_Audio,Assets/_Scriptsで迷子防止 - READMEに最小セット:Unityバージョン/導入手順/ブランチ戦略/LFS対象
No Comments