はじめに
こんにちは、ユーゴです。今回は、VSCodeを使ってUnityのC#を編集しようとした時に遭遇した問題を紹介します。
VSCodeは、一度導入すると比較的楽なのですが、最初のセットアップでコケたり、稀に動作しなくなることがあります。今回は、稀に動作しなくなる方でした。
問題
定義に移動できない。
例えば、GameManagerクラスを作り、他クラスのスクリプトから定義へ移動を試みると、定義が存在しないと言われる。
原因
今回は、まさかのUnityのバージョンが悪かったようです。バージョンを変えると難なく動きましたが、戻すとまた定義へ移動できなくなりました。
解決
Unityのバージョンを変えると直ります。
変更前:2021.3.24f
変更後:2022.3.15f
調査
興味がある方は調査フェーズもご覧ください。
まず、C#のログを見ます。以下の画像に示す手順で確認できます。
今回の問題は、どうもslnファイルが読み込まれていない(?)ことが原因のようでした。
一生「/Users/{ユーザー名}/UnityWorks/tmp/tmp.sln を読み込んでいます...」で止まっていることがわかります。
(ちなみに、「tmp」が本記事のために作ったUnityプロジェクトの名前です。)
あくまで予想ですが、slnファイルはVSCode側で使われるものの、生成はUnity側が行なっているのではないかな...?と思っています。そのため、Unityのバージョンによってはslnファイルが破損しており、VSCodeでslnファイルを読み込めず、定義へ移動できないようなバグが起きているのではないかと思います。
まとめ
いかがだったでしょうか。今回は、VSCodeの使い方に焦点を当てた紹介をしました。
このように、開発ツールの使い方から、GAS, AWS, 量子コンピューティングなど、様々な内容について紹介していきます。ぜひお役に立てましたら、いいね, フォローなどよろしくお願いします!