UnityのC#コード編集とデバッグをVisual Studio Codeで行う(2016/10/8版)

#はじめに

訳あって自宅のMacでUnity開発環境を構築する必要性が出てきまして、普段Windowsで開発している身としては"Unity+VisualStudio"の強力な連携に慣れきってしまって正直不安だったんですが、Macでもほぼ同等の環境を構築できましたので、ここに記すものです。

#Unity

まずUnityをインストールします。2016/10/8現在では「5.4.1f1」が最新で、ベータ版として「5.5」が出ているようですが、ひとまず避けてください(理由は後述)。
https://store.unity.com/ja/download?ref=personal

#Visual Studio Code

2016/10/8現在では「1.5.3」が最新でした。フォントも綺麗でカッコいいエディタですね！！
http://code.visualstudio.com/Download

#VSCode(Unityエディタ拡張)

"VSCode"というUnityエディタ拡張を使います(VisualStudioCode自体の略称として"VSCode"を使うこともあるのでややこしい…)。基本的にMac専用です。

入手方法はGithubからダウンロードというのが主流っぽいですが( https://github.com/dotBunny/VSCode )、私はお手軽にUnityのAssetStoreから持ってきます。"VSCode"で検索すると、このアセットが出てきます。ダウンロードしてそのままインポートしましょう。

![VSCode_AssetStore.png](https://qiita-image-store.s3.amazonaws.com/0/141731/8786c61e-d8d0-d1f4-7f42-bf43d68491d1.png)

注意点としては、あくまでアセットとして配布されているので、プロジェクトを作るたびにインポートする必要があります。また、Assetsフォルダ直下にVSCodeというフォルダを作ってインポートされるので、プロジェクトのアセットはAssets直下ではなく、さらにフォルダを作って(プロジェクト名とか)そこをルートとするのがUnityのお作法のようです。

次に設定です。Unityのアプリメニューから"Preferences..."で設定画面を開くと、なんと、"VSCode"というタブが増えています。
![VSCode_Preference.png](https://qiita-image-store.s3.amazonaws.com/0/141731/49e08bcc-6e3a-2dd7-138d-f5d88b07629e.png)
設定はこのままで構いませんが、"Write Workspace Settings"と"Install Unity Debugger"を押しておいてください。これは、VisualStudioCodeのファイルツリーからソースコード以外(.metaとかバイナリファイルとか)を見えなくするための設定ファイル"settings.json"と、Unityデバッガ設定ファイル"launch.json"をプロジェクトフォルダの".vscode"フォルダに、そしてUnityデバッガ拡張本体をインストールするものです。

#Visual Studio Codeでコード編集

インストールが完了しましたので、Unityのメニューバーから"Assets"->"Open C# Project In Code"を選ぶと、VisualStudioCodeが起動します。おめでとうございます！！
![VSCode_First.png](https://qiita-image-store.s3.amazonaws.com/0/141731/c3cd5d3f-78a9-97cb-88f8-165508a2029f.png)
…が、よく見るとシンタックスハイライトは効いてないし、コード補完も効きません。ここでもう一手間必要になります。

#Legacy C# Support

VisualStudioCodeのウィンドウ左端のアイコンの中に厚めの四角があると思うんですが、これを押すと拡張機能の管理画面になります。すでに先ほどインストールした"Debugger for Unity"が表示されていると思いますが、さらに"Legacy C# Support"をインストール＆有効にします。上部が検索窓なので、"Legacy"とかを入れて探してください。
![VSCode_Legacy.png](https://qiita-image-store.s3.amazonaws.com/0/141731/4383c879-bf32-6c7a-3044-33dcb04dc22b.png)
そして、VisualStudioCodeを再起動すると、コードに色がついた！！
![VSCode_Color.png](https://qiita-image-store.s3.amazonaws.com/0/141731/3355d1e0-6478-f469-b5d9-1a042705166a.png)
…が、コード補完が有効になりません。むむ。

#Mono

実はもう一つインストールが必要なものがあります。Monoです。先ほどの段階でコード補完が有効になっていた方はすでにインストール済みということですね。なお、ここでインストールするMonoはUnityのMonoには影響を与えませんので、ご安心ください。2016/10/8現在ではバージョンは「4.6 Service Release 0 (4.6.1.3)」でした。
http://www.mono-project.com/download/

これでVisualStudioCodeを再起動すると、WindowsのVisualStudioでUnityのC#コードを編集するのとほとんど同じ環境が得られます。今度こそおめでとうございます！！ 参照カウントの表示とかもWindowsと全く一緒で、ちょっと感動。

#デバッグ

さて、これで楽に編集できるようになったので、次はデバッグです。必要なものはすでにインストール済みなので、軽く使い方を。VisualStudioCodeの左端のアイコンの中に虫が進入禁止されているような絵がありますが、これを押すとデバッガー画面になります。
![VSCode_Debugger.png](https://qiita-image-store.s3.amazonaws.com/0/141731/efb40255-9adb-4820-859f-0075f66557f8.png)
ここで上部のポップアップメニューに"UnityEditor"と表示されていることを確認(Editor以外もデバッグできるみたい)、左の再生ボタンを押すとUnityと接続されます。例えばコードの行番号の左をクリックするとブレークポイントが貼られて、実行するとちゃんとここで止まるようになります。

#終わりに

今回、この環境を構築するためにいろいろ調べたんですが、ここらへんの連携機能はUnityもMicrosoftも積極的にアップデートしているところのようで、手順や必要なものが違うことが結構ありました。なので、ここに書いた手順もおそらくUnityバージョン5.5ではまた変わるものと思われます。VSCodeも5.5未満のみ対応というのをことさら強調しているので、おそらく5.5ではもっと楽に強力に連携できるようになると思われます。楽しみですね。さて、Unityで何か作りますか！！