VisualStudioCodeはMonodevelopと比べても軽量でインテリセンスもさくさく効くのでUnityのエディタにしている人も多いと思います。
Unityでのデバッグができないのが困ると思っていたんですが、最近のUpdateでDebugできるようになったようです。
やり方試してみたのでまとめます。
環境
Mac OSX Yosemite 10.10.5
Unity 5.2.0f3
VisualStudioCode 0.9.1
参考
導入
git clone https://github.com/dotBunny/VSCode.git
で適当な場所にDLしておきます。
正直コピーでもいいですが、今後の更新を取りやすくなるのでcloneしといたほうがいいのかな。
Plugins\Editor\dotBunny
をUnityプロジェクト内にコピー。
通常Assetsの下に入れるかと思います。参考サイトでもそういうふうに書いてますね。
Unity側設定
Unity>PreferencesにVSCodeというタブができている。
Enable Integration
にチェック入れると他のも触れるようになります。
ひととおり全部チェック入れてしまって問題ないかと。
AlwaysWriteLaunchFileについては後ほど。
またメニューのAssetsの一番下にOpenC#ProjectInCode
という項目ができているので、クリックするとVisualStudioCodeが開きます。
また以前のようにCodeを開き直してProject選んで〜ってやらなくてもProjectが読み込まれた状態になります。
VisualStudioCode側設定
タブの虫アイコン?を選択するとDebug画面にいきます。
ここで右上の設定アイコンをクリックしてください。
するとlaunch.jsonが開きます。こいつを以下の感じに修正(AlwaysWriteLaunchFileをOnにした場合は何もしなくても勝手にやってくれました)
{
"version":"0.1.0",
"configurations":[
{
"name":"Unity",// DropDownに表示される名前
"type":"mono",
"address":"localhost",
"port":56131 // AlwaysWriteLaunchFileをOnにしてたらここは適当で良さそう
}
]
}
ちなみにAlwaysWriteLaunchFileをOnにしとくと、UnityでPlayしたときに該当ポートで自動的にport部分が書き換わります適切にlaunch.jsonを書き換えてくれます。launch.jsonをまるごと書き換えてるのでデフォルトのものが消えるけど問題ないかと。
これでUnityをPlayしたあとにVSCode側でUnityを選んでDebugのPlayボタンクリックするとデバッガがアタッチされた状態になります。
機能
とりあえず適当にスクリプトつけてブレークポイントはってみました。
Variables
中身は一通り見れそうですね。
やってみて気付きましたが、オブジェクトのnon public memberのとこにへんてこな型表示的なのが出ちゃってますが、内容は問題なさそうです。
Watch
中身は普通に見れたりちょっと式いれたりできますが、VS2015みたいにウォッチWindowでLinqは使えないようですね。
注意
ブレークしてる最中はUnity側から止められないようです。デバッグ中にUnityが止まらないってなって焦ったら、VisualStudioCode側でブレークしてないか確認しましょう。
まとめ
PluginをUnityProjectに毎回入れたりlaunch.json変えたりしないとだめですが、各プロジェクト1回やればすむので、VisualStudioCodeつかってDebug.Log()うめて大変な思いしてた人はぜひためしてみてください!