VS Codeでなるたけ速くUnity環境構築

# 前提
- OSはMac
- Unityはインストール済み
- VS Codeはインストール済み

# やること
VS CodeをUnityのエディタとして使えるように設定する。
具体的にはC#やUnity関数のインテリジェンス（自動補完）やデバッグを行えるようにする。

# コーディング環境構築

**※M1チップが搭載されたMacを使用されている場合は、[こちら](https://tid-a24.hatenablog.com/entry/2021/01/02/213815)を参考にmonoのインストール・設定をしてください。下記の「monoコンパイラのインストール」と「Unity関数の自動補完の有効化（monoコンパイラ）」の作業は不要です。**

### monoコンパイラのインストール
Homebrew及びmonoのインストール（MacやVS Codeのターミナル上で実行）
 
```
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew install mono
```

### Unity関数の自動補完の有効化（monoコンパイラ）
1. 左のリストから【Manage】アイコンを選択し、【Settings】をクリック
<img width="400" alt="4.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/7185637b-fddf-f600-3e58-2a3b086cbfc1.png">

1. 検索ボックスに「use global mono」と入力し、表示された【Use Global Mono】の項目をプルダウンから【always】を選択し、【Restart OmniSharp】をクリック
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/6bf423df-9bdb-621b-2ba0-10ecfda85af3.png)
### C#環境のインストール
1. 左のリストから【Extensions】アイコンを選択し、検索ボックスに「C#」と入力し、トップに表示されたプラグインの【Install】をクリック
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/bcc9cc93-fa33-c9c7-3286-2c75563550a8.png)

1. 下記のエラーメッセージが表示された場合は【Get the .NET Core…】をクリック
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/de7acf30-8555-def2-8b76-015f48109a15.png)

1. 表示されたWebページから【Install for MacOS】をクリックし、任意の場所にダウンロードしてインストール
※詳細は割愛。基本的にはウィザード上で【次へ】をクリックしていけばOK
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/230faf5f-c398-82aa-9200-50e80bbc6de4.png)

### Unity関数の自動補完の有効化（プラグイン）
1. 左のリストから【Extensions】アイコンを選択し、検索ボックスに「Unity code」または「Monobehaviour」と入力し、表示されたリストの【Unity Code Snippets】の【Install】をクリック
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/58687162-a10d-96c4-6835-6da073dccbaa.png)

### Unityのデフォルトエディタ設定
1. UnityのPreferencesを開く
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/e0eebb2f-e2ad-b49c-7d84-4fe31153a525.png)

1. 左のリストから【External Tools】をクリックし、【External Scripts Editor】の【Browse】をクリック
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/c659cd8f-227e-2296-8668-d2055bd7f64f.png)

1. 左のリストから【Applications】を選択し、【Visual Studio Code.app】をクリック
1. Unityの【External Script Editor】がCodeになっていることを確認

# デバッグ環境構築
※2022/08/28追記
下記デバッガは非推奨になっているので、[こちらの記事](https://qiita.com/tanakaPH/items/ce88080094f3f0eef8df)を参照してください。

### デバッガのインストール
1. 左のリストから【Extensions】アイコンを選択し、検索ボックスに「unity」または「debugger for unity」と入力し、表示されたリストの【Debugger for Unity】の【Install】をクリック
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/420e7a9c-1f21-534a-e57a-976babd54849.png)

1. 左のリストから【Run and Debug】アイコンを選択し、【create a launch.json file】をクリック。
プルダウンリストの中から【Unity Debugger】を選択
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/20b07e86-e091-1934-23bb-d42516b10d1e.png)

1. launch.jsonファイルができたことを確認する

### デバッグ方法
1. Unityをプレイモード（▶︎をクリックしてゲームを開始する）にする
1. VS Codeで処理を止めたい箇所にブレイクポイントをセット（行番号の左をクリック）して左上の▷ボタンをクリック
1. デバッガが待機状態になるので、Unityの画面で操作
1. 該当の箇所に到達するとUnity上のプレイモード画面が停止し、VS Code側でデバッグが可能になる

# トラブルシュート
### コード補完がされない
プロジェクトのルートフォルダ（Assetsフォルダ等があるところ）に.csprojと.slnファイルがあることを確認する。存在しない場合、または存在するがうまく動かない場合は一度これらのファイルを削除し、UnityのAssets > Open C# Projectを選択してVS Codeを起動後、補完ができるか確認する。
<img width="400" alt="10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635329/de775640-dec7-ec71-87ad-fe27b81ffd93.png">

また、Unity2019.3以降を使っている場合はUnity > Preferences > External Toolsからも.csprojを生成できる。詳細は[こちら](https://www.exceedsystem.net/2020/08/25/how-to-enable-intellisense-in-vscode-for-unity/)を参照。