Mac上のUnityでVisual Studio Codeを使う方法について、これまで何度か紹介してきました。
【2016/7/24更新】MacのVisual Studio CodeとUnityの連携手順とエラー対処方法 - CrossRoad
MacのVisual Studio Code ver1.3.1でUnity5.3のコード補完を実現する方法 - CrossRoad
MacのVisual Studio CodeでUnityのコード補完が突然できなくなったときの対処法 - CrossRoad
これまでの方法では、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プロジェクト、C#スクリプトを作り、何か入力してみます。すると、下記のInut.GetKeyDownのように、Unity特有のAPIが候補として表示されます。
もし環境が整っていない場合、このようにUnity特有のAPIが候補に出てきません。
(例えば、Inputが出てこない)
このような場合、以下のエラー対応方法を参照ください。
2. エラー対応方法
(1)C#のコードに色がつかない
こうなっている場合です。
これはC#のextentionが入っていないためです。Visual Studio Codeを開き、cmd + pを同時に押してから、
ext install csharp
と入力し、C#アイコンをクリックし、C#の機能をインストールします。
これでC#の記述に色がつきます。
(2)The .NET CLI Tools cannot be located が出る
以下のページの手順に沿って、.NET Core SDKをインストールします。まず、Xcodeがインストールされていない場合、下記よりMac App Storeを開いてインストールします。(次のbrewコマンド使用に必要のため)次に、ターミナルを開き、brewと入力します。
brew : command not found
と出たら、下記をターミナルにコピペすることで、brewをインストールできます。
(brewのバージョンが表示された場合は、下記のインストール作業は不要です)
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Xcodeを一度も開いていない場合、インストールに失敗し、Xcodeのライセンスに同意するように通知されます。
この場合、
sudo xcodebuild -license
を実行し、指示に従って進めます。
これで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
これで、冒頭のエラーは消えます。
(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
これは下記の記事を見ることで解決できました。ありがとうございます。偶然ですが、ほぼ同じ環境でした。
3. 終わりに
¥UnityとVisual Studio Codeの連携方法は今まで何度か変わってきました。今後も変わる可能性がありますが、Unityで標準対応になったことから、大きな変化はないと思われます。あとは、デバッグ機能が動くことを確認予定です。