【Unity】Visual Studioとの統合が上手くいかないとき

導入

Visual Studioとの統合で上手くいかない箇所をまとめました。

統合が出来ているか確認する方法

以下の通りだと、統合が正しく出来ています。

  • Visual StudioのRunボタン(緑色の▶)の右にある文字列が、「アタッチ」ではなく、「Unityにアタッチ」になっている
  • gaと打つと、GameObjectという予測変換が出てくる
  • 関数の上に、「Unityメッセージ〇個の参照」という文字が表示される

①基本的な問題

基本的には、以下の動画を見て下さい。

重要なポイントは、

  • Visual Studio Installerで、「Unityによるゲーム開発」をインストールすること
  • Preferences>External Tool>External Script Editorで、「Visual Studio」を選択すること

また、動画では、再インストールすれば絶対治ると言っていますが、そんなこと無かったです。自分の場合は、②で上手くいきました。

②強制的に読み込ませる

Preferences>External ToolのExternal Script EditorをVisual Studioにした後、下に沢山のチェックボックスが現れます。デフォルトでは、2箇所だけチェックが入っていると思いますが、これをとりあえず全部チェックします。

その後、Regenerate Project filesというボタンを押します。

更にその後、Visual Studioを開くと、ファイル変更の検出という名前のポップアップが出てくるので、再読み込みを選択します。

このようにすると、正しく読み込まれ、統合が上手くいきます。

③一部のクラスだけ読み込まれない

EditdorGUILayout、Selection、EditorWindow等の、エディタ上で動作するクラスが読み込まれず、赤線が表示されることがあります。

この問題は、該当ファイルをAssets/Editorというフォルダに配置すると治ります。

Assets/Editorは、Assets/Resourcesと同じような特殊フォルダで、エディタ用のスクリプトを配置するフォルダになっています。

④特殊フォルダ間の参照が出来ない

Assets/EditorとAssets/Editor以外のコードは、自動的にプロジェクトが分離されます。これにより、Assets/Editor内のコードから、Assets/Editor外にあるクラスを使おうとしても、クラスが存在しないというエラーが発生することがあります。

この問題は、ソリューションエクスプローラー(右側のウィンドウ)のプロジェクト(Assembly-CSharp.Player)を右クリックして、全ての依存関係ツリーの読み込みを選択して、全てのファイルを読み込むことで治ります。