2019年末にARFoundationを触り始めてから、ずっと同じエラーに悩まされていたがようやく解決ができた。
QAプラットフォームの『teratail』に投稿した質問内容を以下に貼り付ける。
リンク:https://teratail.com/questions/239151
UnityのARFoundationを触りたく、Unity公式のGitHubからarfoundtion-samplesをダウンロードして、Unityにアップロードしたら下記のようなエラーが出ました。
Failed to load ‘/Users/user/UnityARFoundation/Assets/arfoundation-samples/ProjectSettings/XRSettings.asset’ because it was serialized with a newer version of Unity. (Has a higher SerializedFile version)
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
上のエラーコードでは「より新しいバージョンのUnityでシリアル化されているため」と書かれているので、Unityのバージョンをダウングレードすれば良いということでしょうか。
このエラーに至った手順を記載します。
①ターミナルにて下記URLを「git clone」
https://github.com/Unity-Technologies/arfoundation-samples.git
②arfoundation-samples.gitフォルダをUnityのProjectのAssetsにドラッグ&ドロップ
○環境
macOS Catalina 10.15.2
Unityバージョン 2019.2.19f1
AR Foundation 3.0.1
AR Subsystems 3.0.0
ARKit XR Plugin 3.0.1
ARKit Face Tracking 3.0.1
いただいた回答にある通り、リンク先に公開されているフォルダはプロジェクトそのものなため、
UnityHubで「リストに追加」しプロジェクトを開けば全て解決した。
この1ヶ月間あまりにも解決できず、上記のエラーを一度無視してサンプルシーンを端末にビルドして遊んでいた。
サンプルシーンの中でも、SimpleARはなぜか問題なく動作して、お目当てのHumanSegmentationImagesやHumanBodyTracking3Dが動作しなかったので、「動作しないサンプルシーンのコードに問題がある!(アホ)」と思っていた笑
※下記画像が、上記エラーを無視してHumanSegmentationImagesを動かしている様子。
※画面中央上部に「Human Segmentation not supported.」とメッセージが出ているので、このメッセージを出しているコードを特定 & 条件分岐・参照を遡り、原因を特定しようとしていた。
(この遡りをしているときにも知らないことが出てきたので、またわかったらQiitaに投稿する)
ちなみに、正常な動作をしているのがこちら。(iPhone 11Pro)
画面左上に検知した手・腕の形が赤く表示されている。
この検知スピードがめちゃくちゃ早くて正確で、驚いたしワクワクした!!(本当に0.1秒くらい)
この検知のコードを使えば、人間とUnityで作ったオブジェクトのオクルージョンができるっぽい。
未来きてるわ。
【学び】
・エラーは絶対に無視しない(トンチンカンな所を調べて無駄に時間かかるだけ)
・考えて調べて解決できなかったらすぐに質問する(あっという間に解決した)
【関連して知りたい事】
・実際の開発現場では、例えばARFoundationのサンプルシーンのコードをコピペして利用しているのか。