令和最新版(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/download/stable/
インストール場所は以下になる。
/Library/Frameworks/Mono.framework
zshとかにパスを通す必要が~とか書いてあるインターネットもあるんだけど結論から言うと不要。
というか通してあっても動かなくなったんだよ。
2. VSCodeにC#プラグインを入れる
これさえ入れれば大抵のことはできるので便利。
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くらいまで行くと重くなるのがあるぽいのでそのうち解決しよう。