# Unityとか関連

Unityとか関連（DirectX以外でのその他ゲームエンジンを使ったゲーム制作）の話題をかこうか

# Unity使うときのプロキシの設定

### サインインのためにプロキシを設定する

1. スタートメニューで「環境変数」と検索 → 「システム環境変数の編集」を開く  
    [![image.png](https://bookstack.yz-learning.com/uploads/images/gallery/2025-09/scaled-1680-/udBimage.png)](https://bookstack.yz-learning.com/uploads/images/gallery/2025-09/udBimage.png)
2. 「環境変数(N)...」ボタンをクリック  
    [![image.png](https://bookstack.yz-learning.com/uploads/images/gallery/2025-09/scaled-1680-/qGyimage.png)](https://bookstack.yz-learning.com/uploads/images/gallery/2025-09/qGyimage.png)
3. 「ユーザー環境変数」または「システム環境変数」の欄で **新規** を押す  
    [![image.png](https://bookstack.yz-learning.com/uploads/images/gallery/2025-09/scaled-1680-/CHSimage.png)](https://bookstack.yz-learning.com/uploads/images/gallery/2025-09/CHSimage.png)
    
      
    **変数名：HTTP\_PROXY**  
    **値：http://172.17.0.2:80**  
    OKで保存
4. 同じ手順で HTTPS\_PROXY も作る  
    <span style="color: rgb(224, 62, 45);">**(変数名はHTTPSだけどURLは<span style="text-decoration: underline;">httpのまま</span>なので注意！）**</span>  
    **変数名：HTTPS\_PROXY**  
    **値：http://172.17.0.2:80**  
    OKを押して全部閉じる
5. ＰＣ再起動
6. Unityを再起動する  
    サインインしてみる

# 🎓Unity × GitHub × Visual Studio(ChatGPT様Says)

## 🎯 目的

Unity プロジェクトを GitHub で安全に管理し、Visual Studio から快適に操作するための手順をまとめました。  
この資料を見れば、****チーム制作でも壊れないUnityリポジトリ構成****が理解できます。

---

## 🧩 1. Unity 側の設定

### ① Editor 設定を変更する

メニューから  
****「Edit → Project Settings → Editor」****<span style="white-space: pre-wrap;"> を開きます。</span>

<table id="bkmrk-%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E5%80%A4version-control"><colgroup><col></col><col></col></colgroup><tbody><tr><th>設定項目

</th><th>値

</th></tr><tr><td>Version Control

</td><td>****Visible Meta Files****

</td></tr><tr><td>Asset Serialization

</td><td>****Force Text****

</td></tr></tbody></table>

これにより、ファイルごとの変更がテキスト化され、Gitで差分が取れるようになります。

---

### ② Unity バージョンをそろえる

<span style="white-space: pre-wrap;">全員が同じ </span>****Unity LTS（例：2022.3系）****<span style="white-space: pre-wrap;"> を使うこと。</span>  
`<span class="editor-theme-code">ProjectSettings/ProjectVersion.txt</span>`<span style="white-space: pre-wrap;"> が一致しているか確認しましょう。</span>

---

## 📁 2. .gitignore の設定

Visual Studio の「Git」メニューから  
****\[.gitignore を追加\] → Unity テンプレート選択****。  
[![image.png](https://bookstack.yz-learning.com/uploads/images/gallery/2025-10/scaled-1680-/image.png)](https://bookstack.yz-learning.com/uploads/images/gallery/2025-10/image.png)

.gitignoreテンプレートからUnity探して選ぶ！  
  
その後、以下を確認または追記します。（これは自分で、プロジェクトフォルダの.gitignoreを開いて編集

```bash
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild*/
[Bb]uilds/
[Ll]ogs/
UserSettings/
*.csproj
*.sln
*.user
.vs/
```

##### <span style="white-space: pre-wrap;">✅ </span>****ポイント****

- `<span class="editor-theme-code">Library/</span>`<span style="white-space: pre-wrap;"> はGitに入れない（巨大・自動再生成される）</span>
- `<span class="editor-theme-code">.meta</span>`<span style="white-space: pre-wrap;"> ファイルは削除禁止（参照リンク切れ防止）</span>

<u>****なんか、長いバージョンもあったよ。****</u>

#### .gitignore（Library を絶対入れない）

Unity公式テンプレをベースに。最低限これでOK：

```gitignore
# 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****<span style="white-space: pre-wrap;"> ウィンドウで変更内容を確認し、</span>  
<span style="white-space: pre-wrap;">メッセージを入力して </span>****\[コミットしてプッシュ\]****

---

### ③ ブランチの作成と切り替え

****Git Branches****<span style="white-space: pre-wrap;"> ウィンドウから操作可能。</span>  
例：`<span class="editor-theme-code">feature/player-move</span>`<span style="white-space: pre-wrap;"> や </span>`<span class="editor-theme-code">fix/audio-lag</span>`<span style="white-space: pre-wrap;"> など。</span>

---

### ④ リモートを登録する

<span style="white-space: pre-wrap;">Git → </span>****リモートの管理****<span style="white-space: pre-wrap;"> → GitHub のURLを追加</span>

---

## 🪶 4. Git LFS（大容量ファイル管理）

### ① LFSとは？

Unityの画像・音声・FBX・動画ファイルなどをGitHubの100MB制限に引っかけずに保存する仕組みです。  
  
自分のリポジトリのフォルダをコマンドプロンプトで開いて、以下のコマンドでgit-lfsを有効化  
なんか言われたら全部Yes！

```powershell
winget install --id GitHub.GitLFS -e
```

### ② 設定手順（最初の1回だけ）

<span style="white-space: pre-wrap;">Visual Studio の </span>****「表示 → ターミナル」****<span style="white-space: pre-wrap;"> を開き、以下を入力：</span>

```bash
git lfs install
git lfs track "*.psd" "*.png" "*.jpg" "*.tga" "*.fbx" "*.wav" "*.mp4"
git add .gitattributes
git commit -m "Add LFS tracking"
```

> `<span class="editor-theme-code">.gitattributes</span>`<span style="white-space: pre-wrap;"> ファイルが作成されます。</span>  
> これをリポジトリに含めることで他の人も自動的にLFSを有効化できます。

---

## 🧠 5. SmartMerge（Unity YAML Merge）

### ① 目的

シーンやPrefabの競合を「自動で統合」してくれるUnity公式ツールです。  
Gitに登録しておくと、複数人編集の事故が大幅減少します。

### ② 設定コマンド（最初の1回のみ）

#### Windows:

```bash
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:

```bash
git config --global merge.unityyamlmerge.driver \
 '"/Applications/Unity/Hub/Editor/2022.3.XX/Unity.app/Contents/Tools/UnityYAMLMerge" merge -p %O %A %B %A'
```

### <span style="white-space: pre-wrap;">③ </span>`<span class="editor-theme-code">.gitattributes</span>`<span style="white-space: pre-wrap;"> に対象拡張子を追加</span>

```bash
*.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. 日常運用チェックリスト

<table id="bkmrk-%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E9%A0%85%E7%9B%AE%E5%86%85%E5%AE%B9%E2%98%90-library-%E3%83%95%E3%82%A9"><colgroup><col></col><col></col></colgroup><tbody><tr><th>チェック項目

</th><th>内容

</th></tr><tr><td>☐ Library フォルダが含まれていない

</td><td>`<span class="editor-theme-code">.gitignore</span>`

<span style="white-space: pre-wrap;"> で除外</span>

</td></tr><tr><td>☐ .meta ファイルを削除していない

</td><td>参照切れを防ぐため

</td></tr><tr><td>☐ Pull → 作業 → Commit → Push

</td><td>作業前に最新状態を取得

</td></tr><tr><td>☐ Additive Scene / Prefab 分業

</td><td>同時編集の競合を避ける

</td></tr><tr><td>☐ Unity バージョン統一

</td><td>チーム内で固定する

</td></tr></tbody></table>

---

## 📁 推奨フォルダ構成（チーム開発用）

```
Assets/
 ├─ _Scripts/
 ├─ _Art/
 ├─ _Audio/
 ├─ _Prefabs/
 └─ Scenes/
Packages/
ProjectSettings/
.gitignore
.gitattributes
README.md
```

---

## 📘 参考リンク

- <span style="white-space: pre-wrap;">🔗 </span>[Unity公式: SmartMerge (YAMLMerge)](#bkmrk--28)
- <span style="white-space: pre-wrap;">🔗 </span>[Git LFS 公式サイト](#bkmrk--28)
- <span style="white-space: pre-wrap;">🔗 </span>[Microsoft Docs: Visual Studio Git 統合](#bkmrk--28)

# 典型的なトラブル回避 “7 か条”

1. ****メタファイルを必ずコミット****（Visible Meta Filesが前提）。メタ欠落＝参照切れ地獄。
2. ****1シーン＝1人原則****で作業（Additive SceneやPrefab分割で並行開発）。
3. ****Packages/manifest.json と packages-lock.json をコミット****（依存固定）。
4. ****外部DLL/SDKは UPM か** `<strong class="editor-theme-bold editor-theme-code">Assets/Plugins</strong>` **に整理****（配布手順もREADMEに）。
5. ****巨大アセットはLFS****、履歴を肥やさない。不要ファイルは****早めに**`<strong class="editor-theme-bold editor-theme-code">git rm</strong>`**。
6. ****ブランチ運用****：`<span class="editor-theme-code">main</span>`は常に動く／開発は`<span class="editor-theme-code">feature/xxx</span>`／PRでレビュー → マージ。
7. ****GitHub 100MB制限****を意識（超過前にLFS。履歴に入った巨大ファイルは`<span class="editor-theme-code">git lfs migrate</span>`で修正）。

# 初期セットアップ（手順書テンプレ）

1. プロジェクト新規作成 → 設定変更（Visible Meta / Force Text）
2. `<span class="editor-theme-code">.gitignore</span>`<span style="white-space: pre-wrap;"> と </span>`<span class="editor-theme-code">.gitattributes</span>`<span style="white-space: pre-wrap;"> 配置、</span>`<span class="editor-theme-code">git init</span>`<span style="white-space: pre-wrap;"> → 初回コミット</span>
3. `<span class="editor-theme-code">git lfs install</span>`<span style="white-space: pre-wrap;"> → 大型拡張子を </span>`<span class="editor-theme-code">git lfs track</span>`
4. <span style="white-space: pre-wrap;">UnityYAMLMerge を </span>`<span class="editor-theme-code">git config</span>`<span style="white-space: pre-wrap;"> に登録</span>
5. <span style="white-space: pre-wrap;">GitHubにcreate repo → </span>`<span class="editor-theme-code">git remote add origin ...</span>`<span style="white-space: pre-wrap;"> → </span>`<span class="editor-theme-code">git push -u origin main</span>`
6. チームへ****Unityバージョン・ブランチ運用・シーン分割規約****を共有

# 日々のワークフロー（短縮版）

- ****作業前****：`<span class="editor-theme-code">git pull --rebase</span>`
- ****作業****：新規ブランチで、シーンはAdditive化・Prefab化して分業
- ****コミット****：小さく早く。メタも含めて`<span class="editor-theme-code">git add -A</span>`
- ****PR****：スクショ/動画/GIF付きで意図を説明 → レビュー → マージ
- ****衝突****：まずSmartMergeに任せる → ダメならUnityで開いて手作業修正

# 授業・組織運用の小ワザ

- ****テンプレートリポ****（Starter Code）を作って、GitHub Classroomで配布
- ****プリフック****（任意）：`<span class="editor-theme-code">Library/</span>`<span style="white-space: pre-wrap;"> をステージしようとしたら弾くpre-commit</span>
- ****命名規則****：`<span class="editor-theme-code">feature/ui-login</span>`、`<span class="editor-theme-code">fix/physics-jitter</span>`<span style="white-space: pre-wrap;"> など</span>
- ****アセット置き場規約****：`<span class="editor-theme-code">Assets/_Art</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Assets/_Audio</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Assets/_Scripts</span>`<span style="white-space: pre-wrap;"> で迷子防止</span>
- ****READMEに最小セット****：Unityバージョン／導入手順／ブランチ戦略／LFS対象

# Unityのゲーム提出するときのあれこれ

Unityのプロジェクトを提出（共有）する際に、動作を保証するために最低限必要なフォルダ・ファイルは以下の通りです。これら以外（`<span class="editor-theme-code">Library</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Temp</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Log</span>`<span style="white-space: pre-wrap;"> など）は自動生成されるため、提出時は不要です。 </span>

### 最低限必要なフォルダ・ファイル

プロジェクトのルートフォルダ内にある、以下の3つ（+1）です。

1. **`<strong class="editor-theme-bold editor-theme-code">Assets</strong>` **フォルダ****<span style="white-space: pre-wrap;"> (必須)</span>
    - スクリプト、シーン、素材など、自分で作成したすべてのデータ。
2. **`<strong class="editor-theme-bold editor-theme-code">ProjectSettings</strong>` **フォルダ****<span style="white-space: pre-wrap;"> (必須)</span>
    - プロジェクトの設定（タグ、レイヤー、物理エンジン、入力など）を保存したデータ。
3. **`<strong class="editor-theme-bold editor-theme-code">Packages</strong>` **フォルダ****<span style="white-space: pre-wrap;"> (必須)</span>
    - プロジェクトで使用しているパッケージの依存関係情報（`<span class="editor-theme-code">manifest.json</span>`）。
4. **`<strong class="editor-theme-bold editor-theme-code">ProjectVersion.txt</strong>`**<span style="white-space: pre-wrap;"> (必須: </span>`<span class="editor-theme-code">ProjectSettings</span>`<span style="white-space: pre-wrap;"> 内にある場合も)</span>
    - <span style="white-space: pre-wrap;">Unityのバージョン情報。 </span>

---

### 提出時の手順

1. Unityエディタを閉じる。
2. プロジェクトのルートフォルダを開く。
3. **`<strong class="editor-theme-bold editor-theme-code">Library</strong>` **フォルダ****、**`<strong class="editor-theme-bold editor-theme-code">Temp</strong>` **フォルダ****、**`<strong class="editor-theme-bold editor-theme-code">Logs</strong>` **フォルダ****<span style="white-space: pre-wrap;"> を削除（または含めない）。</span>
    - ※Libraryフォルダを削除することで、容量を大幅に削減できます。
4. <span style="white-space: pre-wrap;">残ったファイルをZIP形式などで圧縮する。 </span>

---

### 注意点

- **`<strong class="editor-theme-bold editor-theme-code">.meta</strong>` **ファイルを忘れずに****：`<span class="editor-theme-code">Assets</span>`<span style="white-space: pre-wrap;"> 内の各ファイルに対応する </span>`<span class="editor-theme-code">.meta</span>`<span style="white-space: pre-wrap;"> ファイルは、設定の紐付けに必須です。</span>
- ****空フォルダは避ける****：空のフォルダはGit管理などで無視される場合があるため、必要なアセットがすべて入っているか確認してください。
- **`<strong class="editor-theme-bold editor-theme-code">Packages</strong>` **フォルダの重要性****<span style="white-space: pre-wrap;">：以前のUnityバージョンでは不要でしたが、最新のUnityでは </span>`<span class="editor-theme-code">Packages</span>`<span style="white-space: pre-wrap;"> フォルダが必須です。 </span>

この構成でZIP化して提出すれば、受け取り側は自分の環境でプロジェクトを正常に開くことができます。