Home:0
きままな個人開発ブログ
UnityのC#開発で入れたVisual Studio Code拡張機能と設定
2020/08/22#Unity#C#
UnityをWindowsにインストールした場合Visual Studioが標準で導入されますが、ほとんど触ったことなかったのでVisual Studio CodeでC#環境を準備しました。

今回Unity公式のチュートリアル「タワーディフェンステンプレート」で遊びつつ進めていたのですが結構面白かったです。

C#の補完をできるように

C# (for Visual Studio Code)を入れました。こちらはOmniSharpを利用しており、自動補完や定義移動ができるようになります。この時Windowsでは.NET Core SDK、OSX / LinuxではMonoが別途必要になります。(起動時に入っていなければインストールの旨をエラー通知されます。)

Windowsの場合はVisual Studioのツール > ツールと機能を取得からインストール可能です。 install-dotnet-core

Macの場合はMono DownloadからのインストールやHomebrewbrew install monoが利用できそうです。

Unity側でVisual Studio Codeの利用設定をする

ここまで進めても定義移動すらできなかったので調べていたらドキュメントにちゃんと書いてありました。Unity Development with VS Code

UnityのPackage Manager(Unity Registry)にてVisual Studio Code Editorが入っていることを確認します。

vscode-package

Preferences > External Tools > External Script Editor にてVisual Studio Codeを指定すると、.csproj.slnファイルが作成されるのでUnityEngineを含め定義への移動ができるようになりました。 unity-preferences-external-tools

デバッグをできるように

Debugger for Unityが公式から提供されているので簡単に導入できました。

Visual Studio Codeのデバッグからcreate a launchjson file > Unity Debugger を選択しRUNにて実行します。Windowsセキュリティのファイヤーウォール設定を聞かれるので許可をおこなうと、Unity側にも接続の旨が聞かれるので設定します。

vscode-run-debug

UnityのPlayボタンがDebugモードになり実行時にはブレークポイントで止まるようになりました。

vscode-run-debug-result

2020/10/09 追記

静的解析とリンターの導入

C# (for Visual Studio Code)にはRoslyn Analyzersと、Editor Configのオプションが用意されていました。

UnityでRoslyn Analyzersを利用するには、Assetsフォルダにdllを追加する必要があるようですので後ほど試したいと思います。Unity Roslyn analyzers and ruleset files

C#は{}ブロックにおけるインデントやプレフィクスが独特だったのでリンターが必要でした。上記Editor Configを有効にし、.editorconfigroslyn .editorconfig から複製し導入しました。privateな変数に対し_のプレフィクスを付与するのは気持ち悪かったのでdotnet_naming_style.instance_field_style.required_prefix = _を削除しました。

静的解析はまだ未設定ですがこれで少しは安心して開発を進められそうです。

ちなみに、UnityのCollaborateでバージョン管理をしていると、(Assetsフォルダに移動したとしても).editorconfigはコミット対象になりません。.collabignoreでも除外されているように思えないので、ひとまずテキストフィアルにもコピーして管理しています。。。納得はしていませんが。

How to add .editorconfig to Collaborate?

その他

ほかにはC#FixFormatを入れてみました。Format Documentにて自動整形してくれます。

正常に動作しなかった上、リンターに従うので削除しました。

他にも良いのがあったら記載していこうと思います。