わたすけです。
Unity、好きですか?わたしは嫌いです。
Unityといえば、VisualStudioと組み合わせて開発するのが一般的ですよね。VSインストーラにも「Unityによる開発」という項目が存在します。
ただ、C++はもちろん、Qt Creatorで書かれることが多いQtや、Android Studioがよく使われるFlutterなどもVSCodeで書いている人は少なくないと思います(自己紹介)。
そのような人にとって、Unity開発もVSCodeで!と考えるのは自然なことでしょう。
ただ、VSCode、うまく動かない人も中にはいるようです。「うまく動かない」といっても発生する現象はほぼ1つのようで、「補完が効かない」という最悪の状況になってしまいます。
自分もその一人でした。ただ、「Unity VSCode 補完」で検索して、様々な先人たちの試した内容を実践しても、全く解消されませんでした。
ということで、今回は、VSCodeでUnity関連の補完が出来なくなった時、自分がやったことを書いておこうと思います。
大前提
VisualStudio Communityをインストールしておきましょう。VSCodeで開発する人も.NET SDKのインストールで必要になるらしいです。インストール時は「Unityによる開発」にチェックを入れておきましょう。
これによっておそらくUnity Hubがインストールされるので、ライセンス認証及びUnityのインストールを行ってください。LTSがいいと思います。
VSCodeには、C#の拡張機能をインストールしておきましょう。「Debugger for Unity」があるとVSCode上でブレークポイントを設定できていいらしいので、これも入れましょう。
Unity上で設定を開き、「External Tools」カテゴリにある、「External Script Editor」を「Visual Studio Code」にしておきましょう。
発生した現象
VSCodeで補完が出来ない。例えば「Trans」と入力してCtrl+Spaceを入力すると「Transform」が候補に現れるはずですが、出ませんでした。
UnityのC#プロジェクトを開いた時、Omnisharpが「.NET Framework 4.7.1が見つからないからここからDLしてね」みたいなエラーを吐きます。
1 .NET SDKをインストール
エラー文で指示されたページに飛んで、SDKをインストールします。
変わりませんでした。それどころかPowerShellでdotnet --list-sdks
コマンドを実行しても、4.7.1は見当たりませんでした。
2. Omnisharp:useGlobalMonoを変更
Monoをインストールします。
VSCodeの設定を開き、検索欄に「useGlobalMono」と入力し、出てきた項目を「always」に変更します。
変化なし。
3. APIレベルの変更
このページを参考にします。Edit→Project Settingsを開き、左からPlayerカテゴリを選択。
「API Compatibility Level」を見つけて、「.NET 4.x」を選択します。
やはり変わらず。
4. csprojのリセット
とりあえずVSCodeを閉じ、Edit→Preferenceを開きます。External Toolsカテゴリを選択し、「Generate .csproj files for:」の下にチェック項目があるので、全てチェックを入れます。
そして、Unityのプロジェクトがあるフォルダを開き、拡張子が .csproj
または .sln
のものを削除します(再生成されますが、バックアップを取っても良い)。
その後、VSCodeを起動し、補完ができるかどうか確かめます。
やっぱり駄目でした。
5. VisualStudioとUnityの再インストール【解決】
もう諦めて、VisualStudio CommunityとUnityをアンインストールして、再インストールしました。
これで駄目なら諦めようと思っていたのですが、うまくいきました。
終わりに
なんとかなおってよかったです(こなみ)。
というか、Unityに限らず困ったときの最終手段は再インストールだなぁと感じました。
The post Unity+VSCodeでどうしても補完が効かないときに試したこと first appeared on FascodeNetwork Blog.