如何访问命中测试的索引?

时间:2019-07-12 09:16:21

标签: swift scenekit arkit

我正在尝试通过点击测试将一个不同的对象添加到场景中,而我目前只能添加一个对象。我想访问命中测试结果中的第二,第三和第四索引,以便通过触摸添加这些对象。

我尝试通过.indices访问,但是它与UITouch不兼容。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    if let touch = touches.first {

        let touchLocation = touch.location(in: sceneView)

        let results = sceneView.hitTest(touchLocation, types: .featurePoint)

        if let hitResult = results.first {
            let cubeScene = SCNScene(named: "art.scnassets/cube.scn")!

            if let cubeNode = cubeScene.rootNode.childNode(withName: "cube", recursively: true) {


                sceneView.scene.rootNode.addChildNode(cubeNode)

            }
        }
    }
}

我应该怎么做?我曾考虑过创建一个SCNScene,将其作为数组传递,然后从场景中加载所有模型。

1 个答案:

答案 0 :(得分:0)

如Samual建议的...示例


Query bookQuery= FirebaseDatabase
                .getInstance()
                .getReference()
                .child("Books")
                .orderByChild("ownerID")
                .equalTo(user.getUid());

        FirebaseRecyclerOptions<Book> options =
                new FirebaseRecyclerOptions.Builder<Book>()
                        .setQuery(bookQuery,new SnapshotParser<Book>() {
                            @NonNull
                            @Override
                            public Book parseSnapshot(@NonNull DataSnapshot snapshot) {

                                    Book book=snapshot.getValue(Book.class);
                                    return book;

                            }
                        }).build();