Cross Technology

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

MacのVisual Studio Code ver1.3.1でUnity5.3のコード補完を実現する方法

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

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

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

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

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

自分の環境で試したら、たしかにコード補完が効かなくなっていました。

Visual Studio CodeでUnityのコード補完ができない状態
(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 を開きます。

UnityのPreference画面

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のHPに記載されたUnityに関するコメント]

引用元:Visual Studio Code and Unity

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

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

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

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

[f:id:Takyu:20180713224725j:plain:Visual Studio Codeでコマンド入力させるウインドウの表示位置]

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

ここで、以下のように入力してEnterキーを押します。

ext install csharp

すると、このようにC#関連のExtensionsが表示されます。

Visual Studio CodeでのC#関連のExtention一覧

"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を開きます。

Unity5.3からVisual Studio Codeを開く画面

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

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

これでC#のファイルを開くと、コード補完が効くようになりました。

Visual Studio Codeでコード補完ができた例

4. 補足

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

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

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

4.2 Unity Preferenceに表示されるVSCodeについて

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

Unity Preferenceに表示されるVSCode

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

4.3 本記事でもコード補完ができないときがある (2016/11/15追記)

参考までに対応方法を追記しました。
MacのVisual Studio CodeとUnity連携方法(3):コード補完(sln読込) - Cross Technology

5. 終わりに

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