CrossRoad

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

MacのVisual Studio CodeでUnity5.5のコード補完をする方法とTips紹介

Mac上のUnityでVisual Studio Codeを使う方法について、これまで何度か紹介してきました。

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

MacのVisual Studio CodeとUnityの連携方法(2):コード補完(Extention更新) - Cross Technology

MacのVisual Studio CodeとUnity連携方法(3):コード補完(sln読込) - Cross Technology

これまでの方法では、Unityでプロジェクトを作るたびにPluginsフォルダを生成し、VSCode.csを入れる必要がありました。しかし、Unity5.5から、Visual Studio Codeとの連携が標準になったようです。

UNITY 5.5がリリースされました! – Unity Blog

試したところ、連携まではすぐにできました。しかし、コード補完が効いてくれなかったので、少し手間取りました。そこで、対処方法を含めて、コード補完をさせるまでの手順を整理しました。

=====
(2018/5/6追記)今回の記事の内容は、新しくMacを買った場合には必要な手順です。
(2018/5/6追記)Mac 10.13.4、Unity2017.3.1f1、Visual Studio Code 1.22.2 でも同様の手順でできました)
=====

なお、以下の環境で動作を確認しております。

  • Mac 10.12.3
  • Unity5.5.1 f1
  • Visual Studio Code 1.9

1. 前提:UnityとVisual Studio Codeの連携

まず、Unity PreferenceのExternal Toolsを選択し、Visual Studio Code.appを指定します。

Unity Preference画面からVisual Studio Codeを設定する画面

適当なUnityプロジェクト、C#スクリプトを作り、何か入力してみます。すると、下記のInut.GetKeyDownのように、Unity特有のAPIが候補として表示されます。

Visual Studio Codeでコード補完ができている

もし環境が整っていない場合、このようにUnity特有のAPIが候補に出てきません。

Visual Studio Codeでコード補完ができていない
(例えば、Inputが出てこない)

このような場合、以下のエラー対応方法を参照ください。

2. エラー対応方法

(1)C#のコードに色がつかない

こうなっている場合です。

Visual Studio Codeでコードに色がついていない

これはC#のextentionが入っていないためです。Visual Studio Codeを開き、cmd + pを同時に押してから、

ext install sharp

と入力し、C#アイコンをクリックし、C#の機能をインストールします。

Visual Studio Codeで拡張機能をインストール

これでC#の記述に色がつきます。

Visual Studio Codeでコードに色がついている

(2)The .NET CLI Tools cannot be located が出る

以下のページの手順に沿って、.NET Core SDKをインストールします。

準備

Xcodeがインストールされていない場合、下記よりMac App Storeを開いてインストールします。
(次のbrewコマンド使用に必要のため)

‎「Xcode」をMac App Storeで

次に、ターミナルを開き、brewと入力します。

brew : command not found 

と出たら、下記をターミナルにコピペすることで、brewをインストールできます。
(brewのバージョンが表示された場合は、下記のインストール作業は不要です)

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Xcodeを一度も開いていない場合、インストールに失敗し、Xcodeのライセンスに同意するように通知されます。

XCodeのライセンス同意画面

この場合、

sudo xcodebuild -license

を実行し、指示に従って進めます。

管理者パスワード入力画面

Enterキー入力画面

これでbrewがインストールできました。brewがインストールできていたら、次は下記を入力して、opensslをインストールします。

$ brew update
$ brew install openssl
$ mkdir -p /usr/local/lib
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
$ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/


ここまでの手順により、.NET CLI Toolsをインストールする準備ができました。このHPから、Download .NET Core SDKを取得し、インストールします。

.NET Tutorial | Hello World in 10 minutes

f:id:Takyu:20180713221405j:plain

これで、冒頭のエラーは消えます。

(3) The reference assemblies for framework ".NETFramework,Version=v3.5" were not found.が出る

Unity上のC#スクリプトをVisual Studio Codeで開いたが、何かエラーが出ている気がする、、という時は、出力ウインドウを見ると手がかりが得られることがあります。出力ウインドウは、表示 -> 出力と指定することで、下部に表示されます。

エラー内容出力

私の場合、ここに100行くらいのinfo、warning、failログが表示されていました。その中にこのようなログがありました。


[fail]: OmniSharp.MSBuild.ProjectFile.ProjectFileInfo
The reference assemblies for framework ".NETFramework,Version=v3.5" were not found.

これはmonoが入っていないことが原因です。ターミナルで以下を入力して、monoをインストールします。

$ brew install mono

これは下記の記事を見ることで解決できました。ありがとうございます。偶然ですが、ほぼ同じ環境でした。

Unity3D, VSCode, OS X and ‘The reference assemblies for framework “.NETFramework,Version=v3.5” were not found’ error

3. 終わりに

UnityとVisual Studio Codeの連携方法は今まで何度か変わってきました。今後も変わる可能性がありますが、Unityで標準対応になったことから、大きな変化はないと思われます。あとは、デバッグ機能が動くことを確認予定です。