Cross Road

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

MacのVisual Studio CodeとUnityを連携させる方法(4):コード補完の有効化設定

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

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

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

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

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

これまでの方法では、Unityでプロジェクトを作るたびにPluginsフォルダを生成し、VSCode.csを入れる必要がありました。

しかし、Unity5.5から、Visual Studio Codeとの連携が標準になったようです。

blogs.unity3d.com

f:id:Takyu:20170225233705p:plain

試したところ、連携まではすぐにできました。しかし、コード補完が効いてくれなかったので、少し手間取りました。

そこで、対処方法を含めて、コード補完をさせるまでの手順を整理しました。

(2018/5/6追記)
新しくMacを買った場合には必要な手順です。

試した環境

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

(2018/5/6追記 Mac 10.13.4、Unity2017.3.1f1、Visual Studio Code 1.22.2 でも同様の手順でできました)


前提: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が出てこない)


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

エラー対応方法

(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 が出る

Visual Studio Codeで.NET CLI Tools  cannot be locatedが出る

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

準備

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

Xcode

Xcode

  • Apple
  • 開発ツール
  • 無料


次に、ターミナルを開き、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 and C# - Get Started in 10 Minutes

f:id:Takyu:20170226001547j: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が入っていないことが原因のため、ターミナルで

$ brew install mono

を入力して、monoをインストールします。


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

http://kb.imakewebsites.ca/2017/02/11/unity3d-vscode-os-x-reference-assemblies-not-found-error/kb.imakewebsites.ca


終わりに

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