[VisionOS開発メモ]MeshAnchorのClassficationsが使えない
このセッションの中で、MeshAnchorについてもPlaneAnchorと同じように、classificationsが存在し、壁や天井などが分類できるという紹介がされています。
MeshAnchor.Geometry.classificationsを試す
早速、試してみると。MeshAnchor.GeometryのclassificationsはGeometrySource?型になっており、求めるものにアクセスすることができません。公式サイトにも、classificationsの型はGeometrySource?になっています。
同じような役割のPlaneAnchorはどうなっている?
PlaneAnchorも同じようなGeometrySource?型で、これを利用してどうにかアクセスするんだろうか?と思って調べてみるとPlaneAnchorに関しては、PlaneAnchor.Classification型のenumが渡されており、MeshAnchorの場合とは異なり、geometryを介さずに、PlaneAnchor.classificationsで直接アクセスできる。
MeshAnchorのClassificationのenumは存在しているが。。。
MeshAnchorの方に戻ると、MeshAnchorにもMeshAnchor.MeshClassificationというenumは存在してはいます。
PlaneAnchorと異なるのは、MeshAnchorのほうはgeometryを経由しないとclassificationsにアクセスできず、その型もMeshAnchor.MeshClassificationでは現状ないということです。(多分、MeshClassificationにはアクセスする方法がなさそう?)
Forumを調べてみると。同じような問題に当たっているスレッドが存在するが、回答が求めるものではなく、それに対するさらなる質問に対して回答がされてない状態のようです。
とりあえず、今はPlaneAnchor使ったほうが良さそう
最終的に、利用できるようになるのだと思いますが。特定したMeshの分類を使いたい場合はPlaneAnchorを利用できるPlaneDetectionProviderを利用したほうが良さそうです。
僕も、こちらの方のコードを参考にしてトライしてみようと思います。
もし、MeshAnchorの方でも、正しいClassificationsにアクセスする方法をご存じの方いましたら、ご教示いただけたら嬉しいです。
Discussion