LoginSignup
2
0

More than 1 year has passed since last update.

VSCodeのインテリセンスが機能しなかったときに確認すること

Last updated at Posted at 2021-12-03

PONOS Advent Calendar 2021 4日目の記事です。
昨日は@e73ryoさんの「Debug.Log()の全文をファイル出力し、で省略された内容をすぐに確認できるようにする」でした。

はじめに

VisualStudioCode(以下VSCode)を使い始めて3年になりますが、いまだにインテリセンス(コード補完やコード整形など)が機能しなくなることが少なくありません。
検索すると同様の記事がいくつも見受けられますが、改めて自分なりにまとめていたものを共有させていただきます。どなたかのお役に立てたら幸いです。

チェックシート

Unity側

  • PreferencesのExternalToolsに「VisualStudioCode」が指定されているか
  • PackageManagerのVisualStudioCodeEditorのバージョンが適したものになっているか
  • AssetsのOpen C# Projectから開いたことがあるか
  • omnishap.jsonがUnityプロジェクト内に置かれているか

VSCode側

  • コマンドパレットから「OmniSharp:Select Project」を実行してみたか
  • コマンドパレットから「OmniSharp: Restart OmniSharp」を実行してみたか
  • 設定の UseGlobalMono が always になっているか

その他

  • Monoの最新版がインストールされているか
  • アプリケーションやPC本体を再起動してみたか

詳細

Unityエディタ側

  • PreferencesのExternalToolsのExternalScriptEditorに「VisualStudioCode」を指定する
    Unityのバージョンによっては「Code」という選択肢の場合もあります。
    スクリーンショット 2021-12-01 15.17.36.png

  • PackageManagerのVisualStudioCodeEditorのバージョンを最新もしくは適したものにする
    [ 20xx.x verified ]と記されたバージョンが適しています。
    スクリーンショット 2021-12-01 15.19.30.png

  • Assetsの「Open C# Project」からVSCodeを開く
    後述のVSCode側の設定が一通り終わった後、 VScodeのアプリケーションを終了の上でもう一度「Open C# Project」をしてみてください。
    スクリーンショット 2021-12-01 15.24.54.png

  • omnishap.jsonをUnityプロジェクト内に置く
    omnishap.jsonがAssetsと同じ階層に置かれていることを確認してください。
    ※omishap.jsonに関しては割愛します。

VSCode側

  • コマンドパレットから「OmniSharp:Select Project」を実行する
    通常はUnityエディタで「Open C# Project」したときに自動選択されるはずですが、何らかの原因により失敗している場合にお試しください。
    e.png
    正常時はVSCode左下に「{プロジェクト名}.sln」が表示されています。
    スクリーンショット 2021-12-01 15.05.25.png

  • コマンドパレットから「OmniSharp: Restart OmniSharp」を実行する
    おかしいなと思ったらとりあえずリスタートさせることにしています。
    d.png

  • 設定のUse Global MonoをAutoからalwaysに変更する
    デフォルトはautoになっていますがalwaysに変更してください。以前はautoで問題なかったと思うのですが、ここ最近alwaysにしないとエラーが解消しないという報告を受けるようになりました。
    f.png

その他

  • Monoの最新版をインストールする

  • アプリケーションやPC本体を再起動する

言うまでもないことですが、今回の件に限らず再起動しないと反映されないことなどが多々あるので。
Macの場合はウィンドウを閉じるだけは終了しません。Dockのアイコンを右クリックしてそれぞれのアプリケーションを終了させてください。

おまけ

VSCodeのおすすめ設定

  • 自動更新をOFFに
    VScode本体、インポート済みの拡張機能、Unityエディタのそれぞれのバージョンがあわないと噛み合わなくなることがあります。今現在安定動作しているのであれば自動更新をOFFにしておくほうが無難です。
    設定の検索窓にupdateと打ち込んでから、いくつかの自動更新をOFFにしておきましょう。

  • コード整形とセーブのタイミング
    この辺は好みですが、自分の場合はVScodeからフォーカスを外した時にコード整形&セーブしています。
    UserSettings>Text Editor>FormatOnSaveをONに。(ファイル保存時に自動整形する)
    UserSettings>Files>AutoSaveをonFocusChangeに。(VSCからフォーカスが外れた際に自動セーブする)

動作確認環境

Unity2019.4.29f1 / PackageManager:VisualStudioCodeEditor 1.2.4
VSCode 1.58.0 / 拡張機能 C# 1.23.0 / JapaneseLanguagePack 1.48.1

最後に

明日は@blockさんです!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0