UnityEngine.UIが存在しないときの(一時的な)解決方法

環境

Unity: 2019.3.0f6

Visual Studio Code: 1.14.1

Visual Studio Code Editor (Unityのパッケージ): 1.1.4

 

起きたこと

Unityの Visual Studio Code Editor パッケージをアップデートしたら、Visual Studio Code(以下 VSCode) でエラーがでた。

 

f:id:yosuya_6d74:20200129011049p:plain

f:id:yosuya_6d74:20200129011115p:plain

エラー:

型または名前空間の名前 'UI' が名前空間 'UnityEngine'に存在しません。(アセンブリ参照があることを確認してください)。

 

解決方法

Visual Studio 2019 (Codeじゃない) で一度C#ファイルを開く

 

 

Visual Studio 2019 でC#ファイルを開く方法は、

1) Visual Studio 2019 のインストール

2) Visual Studio 2019 にUnityの拡張(Unityによるゲーム開発)をインストール

3) Unityで Edit > Preferences... > External Tools に移動し、 External Script Editor のドロップダウンで"Visual Studio 2019"を選択

4) Unityの画面からC#ファイルの上で右クリックしてOpenをクリック

 

C#ファイルを開くエディタをVSCodeに戻す方法は、

手順 3) で "Visual Studio Code" を選択する。

 

 

注意

この解決方法は一時的なものである可能性もあります。

新たにわかったことがあれば追記します。

 

【追記】

VSCodeからVisual Studio 2019に変更して開いたところ、ファイル(Assembly-CSharp.csproj)の内容が書き換わっていました。

Visual Studio 2019で生成されるファイルではエラーが出力されないため、VSCodeEditorパッケージで生成されるファイルが問題と考えることができます。

Visual Studio 2019で生成されるファイルのままVSCodeでコード編集すると良いと思います。

 

 

また、このようなエラーも出るみたいです。

f:id:yosuya_6d74:20200202140639p:plain

 

VSCodeEditorパッケージのバグと考えて、修正を待つのが良さそうですね。もしくは、アセンブリ参照を自分で記述してしまうとか。

 

このバージョン以前にもUnityEngine.UIが存在しないというエラーが出力されたことがありました。そのときは、VSCodeEditorパッケージのアップデートでエラーがでなくなったと思います。