Help us understand the problem. What is going on with this article?

【 Unity 】Unity × VSCodeで爆速コーディング

UnityとVSCodeを使ったコーディングがやりたかった。。

この記事は、Windowsユーザー向けのものです!!

業務でVisual Studioを使っていると、ちょっとした時に「えっ?!」となる瞬間があります。
もともとVSCodeでwebエンジニアをやっているのでVSCodeのお作法と違うスタイルになるとちょっと戸惑います。

最初は我慢してVisual Studioのお作法に慣れようと我慢をしていたのですが、もう無理です。
なんとか整えます。

今回は、試しにいろいろやっていたらできたという副産物なので、バージョンなどが違ったりすると全く動かないかもしれません。。
あと、Unityを起動してから、VSCodeで編集をしないとEditor補完は有効になっていません。(理由はわかりません。)
2-3の項目で対応方法を記載しています。

1.動作環境

  • Windows10
  • Unity 2019.2.8f1 Personal
  • Visual Studio 2019 16.6.2
  • Visual Studio Code 1.45.1

※追記 2020/8/5
unity 2019.4.4f1での動作確認しています。

2.Unityの設定

最初にVSCodeとUnityをつなげるためにモジュールを入れていきたと思います。
絶対必須かと言われると自信がありませんが、自分は入れることで動ける環境になりましたので、入れてみて動かなかったら消していただいて構わないと思います。

2-1~~VSCode (Asset Store)~~

※追記 2020/8/5
こちらのAssetなしでの動作を確認していますのでこちらの設定作業は行わないでいいようです!

Asset Storeから以下のAssetをインポートする。
6.jpg

Unityの環境設定からVSCodeの設定を変更する。
7.jpg

※ VSCodeのパスをきちんと通してください。私はCドライブ難民ですので、Dドライブに入れています。。(せっかくの高速エディターなのに...)

※ ForceUpdateを行うと、VSCodeアセットのバージョンをアップデートてくれます。
最新バージョンではC#7系統の記法が使われていますので、プロジェクト的に問題がなければアップデートしていただいて問題がないと思われます。


2-2 Visual Studio Code Editor

Package ManagerからEditorサポートを入手する。
8.jpg

※ pacage managerが見つからない方は、window / Pacage Managerを選択するとwindowが出てきます。


2-3 環境設定の変更

assetのVScodeで対応しているとは思うのですが、一応やってください。自分の環境ではこうなんです。。。
External ToolのEditorの設定もVSCodeに変更を行ってください。
VSCodeなんてないよという方はこの方の記事をご参考ください。

https://qiita.com/kuronekoieko0305/items/bb2624a77c0e19d50b47

9.jpg


2020/09/01 10:00:00 追記
Genetate .csproj files for:の項目においてすべての項目をチェックをつけて再度ファイルの生成を行ってください。
そうすることでUnityを起動していない状態でもEditor補完が効いていることを確認しています。

2020/09/17 09:00:00 追記
新規にファイルを作成などを行った場合は、csprojの更新を行わないといけないようです。
ここだけはUnityを起動して「Regenerate Project files」を行わないと関数などの参照は行われないです。


3 Mono Develop

Monoをローカルに入れることで、VSCodeのC#エクステンションがまともに動き始めました。

3-1 Monoのインストール

下記のリンクからMonoをインストールしてください。
https://www.monodevelop.com/download/#fndtn-download-win

スクリーンショット 2020-06-10 19.49.32.png

インストール完了後にパスを通すところまで行ってください。

  • コマンドプロンプト
set PATH=%PATH%;C:\Program Files\Mono\bin\

コマンドプロンプトで以下の様な画面になればOKです。
10.jpg


3-2 GTK# for .NET

上記のダウンロードサイトよりGTK# for .NETもインストールを行い、セットアップをお願いいたします。
自分は特に設定の変更はしていません。


4 Visual Studio

Visual Studio 2019で.NETをインストールしてください。
私はHoloLensを開発するので、.NETのバージョンは4.6系を入れておけば問題がありません。

※ご自身のUnity環境に合わせたTargeting Packを入れてください。
11.jpg

5 Visual Studio Code

入れるエクステンション

  • C#系
  • 12.jpg

  • Unity

  • 13.jpg

※すでにC#を入れられている方はアンインストールしてからもう一度インストトールを行うと動いたりしますのでお試しください。

C#エクステンションのmonoのパスの変更などを行います。

設定ファイルを開きます。

16.jpg
15.jpg

C# configurationの項目からMonoのパスを指定する。setting.jsonを開いて以下の行を追加してください。

setting.json
{
    "omnisharp.monoPath": "C:\\Program Files\\Mono\\bin\\",
    "omnisharp.path": "1.32.3-beta.9",
    "omnisharp.defaultLaunchSolution": "null",
    "csharp.suppressHiddenDiagnostics": false,
    "csharp.testsCodeLens.enabled": false,
    "omnisharp.useEditorFormattingSettings": false,
    "csharp.suppressDotnetInstallWarning": true,
    "omnisharp.enableEditorConfigSupport": true,
    "csharp.semanticHighlighting.enabled": true,
}

上記でOmniSharpのエラーが解消されないかたは、こちらの方の記事が参考になると思われます。
https://h.s64.jp/entry/omnisharp_msbuild_2017_conflict

重要:以上の設定を行い、端末を再起動してください。

unityを立ち上げて、C#プロジェクトを右クリック→Open C# Project In Codeで開いてください。
14.jpg

以下のように、VSCodeでコード補完が適用されていたら成功です。
image.png

最後に

かなり右往左往してなんとかたどり着いたものなのでどれが正解なのかというところの検証までは行っていませんが実際に、私の環境では動いていますので、現状頑張れば動かせるということは証明されたはずです。

かなりいろいろな方の記事を参考にさせていただき、悩まれている方が一定数以上いることも確認していますので、そういった方や今後VSCodeでの開発を考えられている方の参考になれば幸いです。

あと、やってて意外と再起動したりとかでなおったりするレベルの問題なのかもしれないので、つまったら一旦再起動してみて検証するのも大事だと思いました。

以上です!

更新履歴

  • 2020/09/01 10:00:00 2-3の項目を修正

csprjファイル内のUnityEngineなどのファイルパスがうまく反映されず、Editor補完がうまく効かなくなるケースがあったため、Unityを起動しないでもCodeのみでunityEngineの補完も行えるように設定を変更

  • 2020/09/01 10:00:00 2-3の項目を修正

csprojの更新関連で、新規ファイルを作成した際の流れについて追記を行いました。

atomicZAMURAI
フロントエンドの技術に携わる機会が多いです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away