本ページにはプロモーションが含まれます
Unity

【Unity】Visual StudioでUnityの補完や参照方法

この記事は約7分で読めます。

はじめに

Unityでゲーム開発を行っている際、Visual Studio(以下、VS)のコード補完(IntelliSense)やライブラリ参照が突然機能しなくなることがあります。UnityのPreferencesやProject Settings、Visual StudioのUnityTools関連設定を見直しても解決しないケースが少なくありません。筆者も同様の状況に陥り、一般的な解決策では改善しませんでした。

丸一日かけてインターネット上の情報を調べ尽くしましたが、同じような対処法ばかりで、各種設定値の変更を試してもコード補完や参照機能は回復しませんでした。最終手段としてVisual Studioのクリーンインストールも考えられますが、これは極力避けたい方法です。設定ファイルで元に戻せるとはいえ、他のプロジェクトでも使用しており、特に稼働中のプロジェクトや企業内で使用している場合は、後々予期せぬ問題が発生するリスクがあります。そのため、よほどの事情がない限り、この方法は推奨されません。

もし他のUnityプロジェクトではVisual Studioのコード補完や参照が正常に機能するのに、特定のプロジェクトでだけ問題が発生している場合、そのプロジェクト固有の設定ファイルに不備が生じている可能性が高いと考えられます。筆者はUnityのPreferencesやProject Settingsの見直しは必須ですが、それでもコード補完やライブラリ参照が効かない場合、以下の手順を試すことで解決することができました。

プロジェクトフォルダ内にある、またはVisual Studioの設定ファイルを別の場所に保存している場合はその場所にある、以下のファイルを削除します。

  • .vsフォルダ
  • 使用しているプロジェクトの.slnファイル
  • .vsconfigファイル
  • *.csprojファイル

これらのファイルを削除し、UnityからVisual Studioを再起動することで、コード補完やライブラリ参照が再び正常に機能するようになりました。

ただし、Visual Studio側で*.csproj.vsconfigに高度なカスタム設定を施している場合、それらの設定は初期化される可能性がありますのでご注意ください。

1. Visual StudioとUnityの連携設定を確認する

  • Unity側でのVisual Studio設定確認
    1. Unityのメニューバーから Edit > Preferences を開きます。
    2. External Tools タブを選択し、External Script EditorVisual Studio になっていることを確認します。
    3. なっていない場合は、External Script Editor ドロップダウンから Visual Studio を選択してください。
  • Visual Studioの必要なコンポーネントを確認する
    1. UnityのC#プロジェクトを正しく認識し、コード補完(IntelliSense)や参照機能を利用するには、Visual Studioに必要なコンポーネントがインストールされている必要があります。
    2. Visual Studio Installer を起動し、Visual Studioのインストール済みバージョンを選択します。
    3. ワークロードタブから、ゲーム開発 Unity 用にチェックが入っていることを確認してください。チェックが入っていない場合は、これをインストールします。

2. .slnファイルと.csprojファイルを再生成する

Unityが生成するソリューションファイル(.sln)やプロジェクトファイル(.csproj)が破損している、または古い状態になっていると、Visual Studioでコード補完が機能しないことがあります。この場合、以下の手順でファイルを再生成することができます。

  1. Unityのメニューバーから Edit > Preferences を開きます。
  2. External Tools タブを選択し、Generate .csproj files for: の下にあるオプションすべてにチェックを入れます。
  3. Assets > Open C# Project を選択するか、一度Unityを再起動すると、Unityが新しい.slnファイルや.csprojファイルを生成します。

この手順により、Unityが新しいソリューションファイルやプロジェクトファイルを生成し、Visual Studioがそれらを正しく認識することで、コード補完や参照機能が回復するはずです。

3. Visual Studioのキャッシュを削除する

Visual StudioのIntelliSense(インテリセンス)はキャッシュを利用していますが、このキャッシュが破損するとコード補完に問題が生じることがあります。以下の手順でキャッシュを削除できます。

  1. Visual Studioの再起動
    Visual Studioで問題が発生した場合、まずはアプリケーションの再起動を試してみてください。これにより一時的な問題が解消されることがあります。
  2. Visual Studioキャッシュの削除
    キャッシュが原因でコード補完が正しく機能しない場合があります。以下の手順でキャッシュを削除します。
    • Windows:
      キャッシュのフォルダは通常、C:\Users\[ユーザー名]\AppData\Local\Microsoft\VisualStudio\[バージョン]\ComponentModelCache にあります。このフォルダ内のファイルを削除してください。
  3. プロジェクトのリビルド
    キャッシュ削除後、Visual Studioでプロジェクトをリビルドします。ビルド > ソリューションのクリーンを実行した後、ビルド > ソリューションのリビルドを行ってください。

4. IntelliSenseのリセット

Visual StudioのIntelliSense(インテリセンス)が適切に機能しない場合、関連設定を手動で確認・リセットすることで改善することがあります。

  1. スクリプトのインポートを確認する
    C#スクリプト内で using UnityEngine; などの必要な名前空間が正しくインポートされているかを確認してください。インポートが不足していると、該当するクラスやメソッドのコード補完は機能しません。
  2. Visual StudioのIntelliSense設定を確認・調整する
    • ツール > オプション を選択し、テキスト エディター > C# > IntelliSense に移動します。
    • 文字の入力後に完了リストを表示する (Show completion list after a character is typed)が有効になっていることを確認してください。

5. NuGetパッケージマネージャーの問題

Visual Studioがプロジェクトの依存関係を適切に解決できない場合、NuGetパッケージマネージャーによって管理される依存パッケージが不足している、または破損している可能性があります。以下の手順で確認してください。

  1. ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理 を選択します。
  2. インストール済み タブで、必要な依存関係がインストールされているかを確認します。

6. Visual Studio Codeを使用している場合

もしVisual StudioではなくVisual Studio Codeをスクリプトエディタとして使用している場合は、以下の設定を確認してください。

  1. C# for Visual Studio Code 拡張機能のインストール
    • Visual Studio Codeの拡張機能ビューで C# を検索し、Microsoftが提供している C# 拡張機能をインストールします。
  2. OmniSharp の設定を確認する
    • Visual Studio CodeのC#サポートの中核であるOmniSharpが正しく動作していることを確認します。VS Codeの設定からOmniSharp: Use Modern Netオプションがtrueになっているかを確認してください。

7. その他の問題解決法

  • Visual StudioとUnityのバージョンを最新に保つ
    Visual StudioやUnityのバージョンが古い場合、または互換性のない組み合わせの場合、様々な問題が発生することがあります。両方のソフトウェアを常に最新バージョンにアップデートしておくことを推奨します。
  • Unity Editor自体の修復を試す
    稀にUnity Editor自体に不具合が生じているケースもあります。Unity Hubを利用して、問題のUnityバージョンのインストールを修復することで、問題が解決することもあります。

おわりに

UnityとVisual Studioの連携におけるコード補完や参照の問題は、多くの場合、設定の不一致やキャッシュの破損が原因です。本記事でご紹介した以下のポイントを確認・実行することで、解決に導けることが多いでしょう。

  • UnityとVisual Studioの統合設定が正しいか確認する
  • .slnおよび.csprojファイルが破損していないか(再生成を試す)
  • Visual StudioのIntelliSenseキャッシュが問題ないか(削除・リセットを試す)
  • Visual StudioとUnityのバージョン互換性および最新化を確認する

Visual Studioのクリーンインストールは、本当に最後の手段として考えてください。今回のように自力で問題解決に取り組むことで、システムの構造やツールの連携に関する新たな知識や洞察が得られることもあります。