1

それぞれが表示されるシーンで複数の一意のマーカー アンカーを使用してModelEntityいます。各マーカーを個別に検出するのに問題はありませんが、1 つが追跡されてモデルが表示されると、他のマーカーは追跡されなくなります。追跡されたマーカーがフレームから移動すると、突然別のマーカーが追跡され始めます。

私の疑いは、マーカーの最大数の設定が存在し、それが 1 に設定されているということmaximumNumberOfTrackedImagesです。シーンにアンカーを追加するとどうなりますか?

配列内の各項目に対して次の関数を呼び出しています。

class RealityViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
            let arView = ARView(frame: UIScreen.main.bounds)
            view.addSubview(arView)

            let targets = ["image1", "image2", "image3"]
            for target in targets {
                addTarget(target:target,arView:arView)
            }
    }

    func addTarget(target: String, arView: ARView) {

        let imageAnchor = AnchorEntity(.image(group: "Markers", name: target))
        arView.scene.addAnchor(imageAnchor)
        let plane = MeshResource.generatePlane(width: 0.05, height: 0.05, cornerRadius: 0.0)
        let material = SimpleMaterial(color: .blue, roughness: 1.0, isMetallic: false)
        let model = ModelEntity(mesh: plane, materials: [material])
        imageAnchor.addChild(model)
    }
}

更新: @ARGeo の回答は、さらなるテスト中に元の質問を解決しましたが、更新されたコードで一度に最大 4 つのターゲットしか追跡できませんでした。繰り返しますが、これがRealityKitのハードリミットかどうかはわかりませんが、誰かが洞察を持っている場合は、受け入れられた回答に追加してください。

以下では、追跡されている 6 つの一意のマーカーのうち 4 つだけを確認できます。

追跡中の 6 つのマーカーのうち 4 つ

4

1 に答える 1