C# 参照しているはずの名前空間が見つからない

Unityに取り入れたライブラリをVisual Studioで開いてみると、以下のエラーが発現していることがある。

①CS0246
型または名前空間名 'xxxx' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
The type or namespace name 'xxxx' could not be found (are you missing a using directive or an assembly reference?)

②CS1061
'<型>' に '<名前>' の定義が含まれておらず、型 '<型>' の最初の引数を受け付けるアクセス可能な拡張メソッド '<名前>' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
'type' does not contain a definition for 'name' and no accessible extension method 'name' accepting a first argument of type 'type' could be found (are you missing a using directive or an assembly reference?).

普通であれば、Visual Studioのプロジェクトタブから「プロジェクトの依存関係」を選択して依存関係をチェックして参照を加えたり、ビルド順序を変えようとしたりするだろう。

ところが、参照もビルド順序も問題ないはずなのに、それでも変わらずエラーのままでいることがある。
その上、Visual Studio側でこうしたコンパイルエラーが起きているにも関わらず、Unity側はエラーなしに問題なく動いているのであれば、それはUnity側のバグである可能性が高い。

Unityのバージョンのアップグレード、もしくはダウングレードを試してみるといいだろう。Unity2020.3.30f1で該当のバグに遭遇し、Unity2021.2.16f1にアップグレードしたところ直った。

断っておくが、Unity2020.3.30f1はLTS版である。
LTS版だからと言って安心して使えないのがUnityだ。

この記事が気に入ったらサポートをしてみませんか?