2022-10-31 (月)
今年はあと2ヶ月しかないのか。。。
Quest ProのPersistent Anchor、ちょっとAnchorの管理周りが不安定で困る。
deletePersistentAnchor()
に失敗することあるけど、無視して使ってるとFailed to execute 'requestPersistentHandle' on 'XRAnchor': Maximum number of anchors reached!
とか言われてそれ以上登録できなくなる。UUID覚えておいてXRSessionを作り直したあとにリトライしないとだめ?
UUID覚えてない状態で、上限に達するとJavaScriptからは何もできなくなるのでブラウザでサイトのデータを削除しないといけない。Quest Browserの設定からはPersistent Anchorだけ消すとかできないのでcookieとかlocalStorageとか全部消える。。。XRSessionは内部的にはUUIDからXRAnchorへのマッピングを持っているようだけど、存在しているUUIDやその個数を知るAPIは存在しないっぽい。
あとrequestPersistentHandleに成功するのにdeleteもrestoreもできなくなることがあって、Questのガーディアン設定をクリアして設定し直したら解決した。ガーディアンごとに何か状態を保存しているっぽい。デバイスを再起動したり、adb shell pm clearでブラウザのストレージをクリアしたり、色々試してもだめで、ファクトリーリセットするしかないかと思ったけど、気づいて良かった。
オブジェクトごとにAnchor作ってたけど、原点に置いたAnchorと相対位置で自分で管理するほうが安全そう。