M1 MacでVS Codeの設定いろいろ
M1 MacでUnityのscriptを編集しようとしたがうまくいかず。
Debugger For Unityが動かない
具体的にはVSCodeのデバッグアイコンを押してlaunch.json追加しようとしても下記画像のような"Unity Debugger"の項目が出なかった。
以下を試したら治りました。
monoをインストール
.Net Coreをインストールしてmac再起動
UnityのPreference/External Tools/External Script EditorをVisual Studio Codeにする
Unityのpackage managerからVisual Studio Code Editorを最新にする
Debugger For Unity、C#(by omnisharp)のエクステンションをアンインストールして、改めてC#、Debugger for Unityの順番でインストール
- 多分これが解決策
Unity C#の補完
UnityEngine.Debug.Log()の補完がでない。これは適用しているスニペット次第で、自分が使っているこれだと、"log"と入れるとDebug.Logが出てきた。自分に合ったものを探すか、自分が合わせるしかない
定義へのジャンプ、実装へのジャンプ
一回全体検索をした後だと動くようになるが、それまではF12でも右クリックメニューでも「No Definition Found」と表示されてしまう。検索のインデックスができていない感じ
UnityでVSCodeを使用中、関数ジャンプや参照ができない!の解決方法 - Qiita
こちらを試したけども解決せず(slnも消してみた)。最後に書かれてるUnity Attach Debuggerはデバッグ時にどのUnityのランタイムにアタッチするか、ということのようで、デバッグ実行したところそれは問題なさそう。
コンソールに何か色々出てるな
[warn]: OmniSharp.CompositionHostBuilder
It looks like you have Mono installed which contains a MSBuild lower than 16.8.0 which is the minimum supported by the configured .NET Core Sdk.
Try updating Mono to the latest stable or preview version to enable better .NET Core Sdk support.
うーん、これか?monoはVisual Studioバージョンを入れていたが、stableのほうが先らしいのでそれを再度インストール。しかし同じエラー。バージョン確認。
% mono -V
Mono JIT compiler version 6.12.0.122 (2020-02/c621c35ffa0 Wed Feb 10 00:51:43 EST 2021)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:
SIGSEGV: altstack
Notification: kqueue
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(610)
Suspend: hybrid
GC: sgen (concurrent by default)
msbuildのバージョンは?
% msbuild -version
Mono 向け Microsoft (R) Build Engine バージョン 16.6.0
Copyright (C) Microsoft Corporation.All rights reserved.16.6.0.10801
じゃあpreview入れてみよう。monoは6.12.0.177、msbuildは16.10.1になった。上記のwarnは出なくなった。しかしDefinitionは依然出てこない。
UnityでVSCodeを使用中、関数ジャンプや参照ができない!の解決方法 - Qiita
もう一回これもやってみたがうまくいかず。
あとは
omniSharp.Roslyn.CSharp.Services.Navigation.FindUsagesService no document found - Google 検索
Mac + VSCode + .NET 5 SDK + C#拡張 で omnisharp がうまく動かない時のたったひとつのcoolな答え
この辺が気になるが続きはまた今度にしよう