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) でエラーがでた。
エラー:
型または名前空間の名前 '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をクリック
手順 3) で "Visual Studio Code" を選択する。
注意
この解決方法は一時的なものである可能性もあります。
新たにわかったことがあれば追記します。
【追記】
VSCodeからVisual Studio 2019に変更して開いたところ、ファイル(Assembly-CSharp.csproj)の内容が書き換わっていました。
Visual Studio 2019で生成されるファイルではエラーが出力されないため、VSCodeEditorパッケージで生成されるファイルが問題と考えることができます。
Visual Studio 2019で生成されるファイルのままVSCodeでコード編集すると良いと思います。
また、このようなエラーも出るみたいです。
VSCodeEditorパッケージのバグと考えて、修正を待つのが良さそうですね。もしくは、アセンブリ参照を自分で記述してしまうとか。
このバージョン以前にもUnityEngine.UIが存在しないというエラーが出力されたことがありました。そのときは、VSCodeEditorパッケージのアップデートでエラーがでなくなったと思います。