令和最新版(2022) ARM系Mac + VSCodeでUnityの補完を行う(2023更新)


概要

軽量かつ機能が少ないエディタで開発がしたいのでVSCodeでUnityコードも書いてるけど

補完がいきなり効かなくなってびっくりしたが解決した話。


次の手順でやるといけます。

1. monoを入れる

2. VSCodeにC#プラグインを入れる

3. VSCodeのextension settingsを調整


他に要るものない。



1. monoを入れる

dotnet系は入れてもちゃんと動かないので要らないです。

使えるならUnityに入ってるdotnet系を使いたかった。新たになんか入れるの環境構築という意味で凄く怠いので、、


arm版?のmonoはこれを書いてる時点だとhomebrewからはインストールできないので諦めてmono本家からDLしたものを使う。

https://www.mono-project.com

https://www.mono-project.com/download/stable/


インストール場所は以下になる。

/Library/Frameworks/Mono.framework


zshとかにパスを通す必要が~とか書いてあるインターネットもあるんだけど結論から言うと不要。

というか通してあっても動かなくなったんだよ。


2. VSCodeにC#プラグインを入れる

これさえ入れれば大抵のことはできるので便利。

スクリーンショット 2022-04-07 16.46.25.png


3. VSCodeのextension settingsを調整

Omnisharp: Mono Path

Omnisharp: Use Global Mono


この2つの項目をいじる。



Omnisharp: Use Global Mono

まずこちら、alwaysに設定する。この設定 + Omnisharp: Mono Pathを指定することで、Omnisharp: Mono Path で指したmonoが常に使われることになる。



Omnisharp: Mono Path

次の文字をいれます。

/Library/Frameworks/Mono.framework/Versions/Current



最終的にはsettings.jsonの項目はこんな感じになってるはず。

ここだと下の方の二行だけが大事。

{

    "git.ignoreMissingGitWarning": true,

    "editor.formatOnSave": true,

    "security.workspace.trust.untrustedFiles": "open",

    "extensions.ignoreRecommendations": true,

    "omnisharp.useGlobalMono": "always",

    "omnisharp.monoPath": "/Library/Frameworks/Mono.framework/Versions/Current"

}


この状態でrestart omnisharp とかを実行すれば問題なく動くはず。


繰り返すけどdotnet sdkやらcliを入れる必要はない。

homebrewから入れられて便利だけど、あれほんと意味ない。



以下追記 in 2023


MSくんは必ず環境を壊すことでしかなにかができないんか?ってくらい微妙なアプデを突っ込んでくるのがあって、

今に至ってもMacでUnity用のC#を書く時のベストな体験はVSCode + C# extensionオンリーっすね。


MSくんはC# DevKitと、あともう一つくらい、さらにC# extensionを含む合計3つのextensionの協調動作でなんとかしようとしてくるんだけど、

そんな難しいことユーザーの手元でやらせるな、失敗するに決まってるだろ。


というわけでVSCodeのC# extensionも、バージョンを固定して過ごしている。


これがまあアプデオフにしてないと壊れる上に、一度でもアプデでぶっ壊れると、↑の複数extension協調なのが必須な理由で、

ユーザーの手元でextension間の関係がぶっ壊れて、extensionのダウングレードでも解決できなくなる。


方法としてはextensionの削除でもまだ無理で、VSCode自体を入れ直す + 特定verのC# extensionをダイレクトにvsix経由でインストールすると解決する。


いやほんと、C#なんてコンパイルできてエラー表示できて補完表示できて参照数表示できて、あとはcopilotあたりがVSCode自体の経由で使えりゃ満足なんだわ。

素晴らしい体験。

というわけで方法 in 2023。



1. VSCodeをクリーンインストールします

a. ApplicationsフォルダからVSCode.appを消す

b. https://logsuke.com/app/vscode/vscode-uninstall この辺を参考に隠しファイルとかも消す。

c. https://code.visualstudio.com/docs/?dv=osx からDLしてインストール


2. C# extensionをバージョン指定してvsixファイルをダウンロード

a. https://github.com/dotnet/vscode-csharp/releases/tag/v1.24.1 このバージョンが比較的まともに動き続けることができる。vsixファイルをDLする。

b. VSCodeのExtensionsペインの三点マーク → Install from VSIX で2-aでDLしたファイルを指定、あとは↑の、2022記事の通りにすると動作する。


2-aのURLを確保するためだけに追記している。



これから

Unity2022.3くらいまで行くと重くなるのがあるぽいのでそのうち解決しよう。