Unity から AR Foundation のとても良いサンプルが GitHub にリリースされております。
このサンプルは良くできてるので、テストだけでなくアプリ実装時なんかも、まずこのサンプルからスタートしたりもします。

しかし、このサンプルをオープンした際に大量に エラーCS0246 が出ることがありました。
Unity_Error_22

Error CS0246: The type or namespace name ‘*****’ could not be found (are you missing a using directive or an assembly reference?)

今回はその解決法についてです。
そもそも、この Unityから提供されている AR Foundationのサンプルはとても分かりやすくできており、とてもお薦めのサンプルとなります。
その中のサンプルのいくつかは既に何度か利用法や応用法を紹介してきました。

AR Foundation のサンプルを試してみた(SimpleAR)
AR Foundation のサンプルを試してみた(ImageTracking)
AR Foundation のサンプルを試してみた(FaceTracking)

そして、それを何度も使っていると、サンプルをオープンした最初にエラーCS0246が出ることがありました。
Unity_Error_23

Error CS0246: The type or namespace name ‘*****’ could not be found (are you missing a using directive or an assembly reference?)


【解決法】

エラーメッセージにある通り、namespaceが見つからないとのことですね。ちゃんと必要なパッケージをインストールしているのに。。。
これはサンプルとパッケージのバージョンとにそれぞれ変更があり、適したものでないとnamespaceが見つからないようですね。

まず、最初に一番簡単な方法は、Unityのバージョンとパッケージのバージョンを完全にサンプルの指定のものに合わせると良いです。

以下の場合は Unity2019.2.11f1 と AR Foundationパッケージの 3.1.0 Preview 1を使うのが良いです。
Unity_Error_24


また、他の要件で 使うべきUnityのバージョンが固定の場合もありますね。
しかし、現在(2020年1月)のタイミングでは、Unity2019.3では完全に namespaceが異なる新しい機能が含まれているのでこのサンプルは使わない方が良いようです。Unity2019.2以前のものにするべきとのこと。

そして、AR Foundationに必要なパッケージも「AR Foundation」、「AR Subsystems」、「ARCore XR Plugin」、「ARKit XR Plugin」、「ARKit Face Tracking」とそれぞれのバージョンを持っているので適した組み合わせがあります。
Unity_Error_25

順番に試してエラーを解消していくなんて方法もあります。が、やはり、Unityのバージョンを指定のものにするのが一番楽かと。

Sponsored Link