Cross Road

Unity、VR、MR、ARを中心とした技術ブログ

MacのVisual Studio CodeとUnity連携方法(2):コード補完(ファイル追加)

以前、Visual Studio CodeをUnity用のテキストエディタとする方法を紹介しました。

MacのUnityでVisual Studio Codeと連携させる方法(1) - Cross Road

しかし、本日このような記事を見つけました。

UnityでVSCode使ってたらインテリセンスなどが効かなくなった話

(ブログ執筆者の@SilverTats様、ありがとうございます)

自分の環境で試したら、たしかにインテリセンスが効かなくなっていました。

f:id:Takyu:20180713224610j:plain
(Unityの"Input"が候補に出て来ない)

アップデートの通知が来た時にVisual Studio Codeのバージョンを上げてた気がするので、それが影響したのかもしれません。最近開発時はWindows10ばかりだったので気づくのが遅れました。。

最終的に動くようにできましたが、以前紹介した方法と変わっていたので、改めて方法を紹介します。

環境

Mac OSX 10.11.5
Unity 5.3.5f1
Visual Studio Code v1.3.1

1. Unity側で、Visual Studio Codeを使うように設定を変更する

これは以前と同じです。まず、Unity -> Preference を開きます。

f:id:Takyu:20180713224633j:plain

External Script Editor でBrowseを選択し、Macのアプリケーションフォルダから、Visual Studio Code.appを選択します。一度選択すると、上記画像のように、Codeという項目が追加されチェックが付きます。

2. Visual Studio CodeのExtensionを変更する

上記ブログに記載の通り、Visual Studio Code and Unity のHPを開くと、このようなメッセージが追加されています。

f:id:Takyu:20180713224651j:plain


この記載によると、バージョンが新しいVisual Studio Codeは、C#認識用のプラグイン(Extensionsと呼ばれてます)も新しくなっており、これがUnityのC#に対応していない、ということのようです。

そこで、手動でExtensionsを変更します。

2-1. C# Extensionsをアンインストール

Visual Studio Codeを開き、cmd + p を同時に押します。

f:id:Takyu:20180713224725j:plain

すると、赤枠のように、小さいコマンドプロンプトが出ます。

ここで、

ext install csharp

と入力してEnterキーを押します。すると、このようにC#関連のExtensionsが表示されます。

f:id:Takyu:20180713224740j:plain

"C#"の箇所にある「拡張機能のアンインストール」を選択すると、新しいプラグイン"C# Extensions"がアンインストールされます。

2-2. Legacy C# Support をインストール

Legacy C# Supportは、omnisharp という名前のExtensionsです。先ほどと同じように、

ext install omnisharp

を入力してから、出てきたメニューで「インストール」を選びます。私の環境では検討中に一回入れてたので、いったん「拡張機能のアンインストール」を選択してから再度インストールしました。

以上、1と2が、最初のみ設定する作業です。

3. VSCode.csを入手し、プロジェクトに追加する。

これはエディタ拡張用のスクリプトで、Visual Studio Codeとの連携にはこれが必須になりました。Unityでプロジェクトを作るたびに追加する必要があるので、これが一番大きな変更です。

以下のPlugins/EditorというフォルダからVSCode.csを取得します。

GitHub - dotBunny/VSCode: Unity Visual Studio Code Integration

このファイルを、自分が使っているUnityプロジェクトに追加します。

Plugins/Editorフォルダを作り、この中に入れればOKです。あとは、Unityを起動してプロジェクトを作り、任意のスクリプトを作った状態で、UnityのメニューからVisual Studio Codeを開きます。

f:id:Takyu:20180713224820j:plain

具体的には、Assets -> Open C# Project In Code を選択します。

以前紹介したときは、Visual Studio Codeを開き、「フォルダを開く」からUnityのプロジェクトのトップディクレトリを指定していたので、ここも以前と変わっています。

これでC#のファイルを開くと、インテリセンスが効くようになりました。

f:id:Takyu:20180713224838j:plain

補足

補足1

C# Extensionsをアンインストールすると、このようなメッセージが表示されます。

It is recommended to install the 'ms-vscode,csharp' extention

今のところ、Unity用のエディタとして使う分には、ここで指定されている「ms-vscode.csharp」のインストールは不要です。

補足2

VSCode.csを追加したことで、Unity PreferencesにVSCodeというメニューが追加されています。



f:id:Takyu:20180713225016j:plain

ここで最初に設定されている内容を変更しなくても使用できたので、今のところはここはそのままでよさそうです。

補足3 (2016/11/15追記)

インテリセンスが効かない例が他にもあったので、参考までに対応方法を追記しました。
MacのVisual Studio CodeとUnity連携方法(3):コード補完(sln読込) - Cross Road

終わりに

Visual Studio Codeは進化が早いようですね。
以前よりひと手間増えてしまいましたが、個人的にはMono DevelopよりVisual Studio Codeの方が軽くて使いやすいので、引き続きMacで開発する時はCodeを使おうと思っています。