UnityとVSCodeを連携させる for Mac

普段から使い慣れているVSCodeを簡単にUnity連携してデバッグできたので手順をメモ。

## __前提__

- Mac に Unity, VSCode, Homebrew がインストール済みであること。

## __バージョン__

- MacOSX（10.11.6 El Capitan）
- Unity（2017.1.0f3 Personal）
- VSCode（1.15.1）
- Homebrew（1.2.1）

## __1. 各ツールのダウンロードとインストール__

- [.NET Core](https://www.microsoft.com/net/core#macos)
    - .Net Framework のサブセット（一部）でクロスプラットフォームに対応している
    - 要は .NF の機能の一部を Linux や Mac でも使えるようにしたもの（といった認識であってる？）
    - リンク先にインストール方法が書いてあるので参照のこと
- [VSCode.cs](https://github.com/dotBunny/VSCode)
    - VSCodeをUnityのエディタとして使うための設定ファイル
    - GitHub の DownloadZip から落として解凍
    - Unityプロジェクトの /Assets/Plugins/Editor/VSCode.cs として配置

※ 2017/12/20 追記
Unity5.6.3では

> Unityプロジェクトの /Assets/Plugins/Editor/VSCode.cs として配置

ではエラーとなるので

> プロジェクトの /Editor/VSCode.cs

に配置する。（@aketa さんご指摘ありがとうございます）

## __2. Homebrewから必要なツールをインストール__

### mono

```
$ brew install mono
```

### openssl

```
$ brew install openssl
```

上記コマンドで `/usr/local/opt/openssl` にインストールされる。
ただし、このままだとデフォルトの `/usr/bin/openssl` が利用されてしまうので、
`.bash_profile` に新しい方のインストールパスを追記する。

```
$ vim ~/.bash_profile
```

``` :.bash_profile
export PATH=/usr/local/opt/openssl/bin:$PATH
```

## __3. VSCodeに必要なプラグインをインストール__

Command + p でコマンドパレットを表示

![スクリーンショット 2017-08-28 13.00.33.png](https://qiita-image-store.s3.amazonaws.com/0/35509/9f97f47b-e27f-8a26-ae1d-2a52922cdc7f.png)

入力フォームに `ext install` に続けてインストールしたいプラグイン名を入力して Return する。


### C# for Visual Studio Code

```
ext install C#
```

### Debugger for Unity

```
ext install Debugger for Unity
```

### Mono Debug

```
ext install Mono Debug
```

イストールが完了する Extensions のインストール済みの項目に表示される。

![スクリーンショット 2017-08-28 13.png](https://qiita-image-store.s3.amazonaws.com/0/35509/450a0034-39d6-271e-65f7-ad450c42bc17.png)


## __4. Unity を起動し連携設定__

1 . Unity > Preferences > External Tools を開く
2 . External Script Editor 項目のプルダウンから Other を選択
3 . Visual Studio Code.app を選択（プルダウンが code に変わる）

![スクリーンショット 2017-06-02 11.56.26.png](https://qiita-image-store.s3.amazonaws.com/0/35509/f7b51163-30a4-cf45-ebb3-340d70d4cbbe.png)

4 . Unity > Preferences > VSCode を開く（基本デフォルトでOK）

![スクリーンショット 2017-06-02 11.56.43.png](https://qiita-image-store.s3.amazonaws.com/0/35509/e09d83fe-ce03-3006-42ab-46491163f491.png)

## __5. VSCodeを起動しIntelliSense を有効にする__

[IntelliSence - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AA%E3%82%BB%E3%83%B3%E3%82%B9)
> インテリセンス (IntelliSense) は、Microsoft Visual Studio の統合開発環境で使用されている、マイクロソフトによる自動補完システム。

1 . Unity 側の Assets > Open C# Project In Code でVSCodeを起動

![スクリーンショット 2017-08-28 13.21.12.png](https://qiita-image-store.s3.amazonaws.com/0/35509/80d24292-8242-fc43-bb3d-af9c269a3658.png)

2 . プロジェクト直下に .sln ファイルがあるか確認

![スクリーンショット 2017-08-28 13_2.png](https://qiita-image-store.s3.amazonaws.com/0/35509/a22753ee-87b3-cc3c-19ba-26357a92f6a7.png)

3 . 適当に .cs ファイルを開く
4 . VSCodeのステータスバー（画面下のやつ）の右端が プジェクト名.sln になっているか確認
（なっていなかったらクリックして変更）

![スクリーンショット 2017-08-28 13_4.png](https://qiita-image-store.s3.amazonaws.com/0/35509/980ad2f8-c573-5a8b-11ab-ec2935bf80fb.png)

IntelliSenseが有効になると補完や関数ジャンプなどの機能の他、
 `n references` といった感じでそのメソッドや変数が他からどのくらい参照されているかがわかるようになる。

## __6. ステップ実行__

1. ブレイクポイントを適当に貼って VSCode 側をデバッグモードに切り替える。（`Shift + Command + d`）
2. 画面上部の Start Debugging ボタン（デバッグペインの緑三角）をクリックすると DEBUG CONSOLE にアタッチメント情報が出力され待機状態になる。
3. Unity 側で再生するとブレイクポイントで処理が停止する。

![スクリーンショット 2017-08-28 13.35.33.png](https://qiita-image-store.s3.amazonaws.com/0/35509/ec1dbfa6-6e88-8c44-2f51-3bec07fc7a8e.png)


## __参考サイト__

- [UnityとVisual Studio Codeの連携方](http://nnamm.com/blog/814)