我下面的代码在touches began函数中只显示了一个arkit对象。我希望用户能够在arkit场景视图中显示几个相同的arkit对象。现在,用户可以放置一个图像,但一旦放置下一个图像,另一个图像就会被删除。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
//Handle the shooting
guard let frame = sceneView.session.currentFrame else { return }
let camMatrix = SCNMatrix4(frame.camera.transform)
let direction = SCNVector3Make(-camMatrix.m31 * 5.0, -camMatrix.m32 * 10.0, -camMatrix.m33 * 5.0)
let position = SCNVector3Make(camMatrix.m41, camMatrix.m42, camMatrix.m43)
let scene = SCNScene(named: "art.scnassets/dontCare.scn")!
// Set the scene to the view
sceneView.scene = scene
}发布于 2019-01-27 17:21:16
愚蠢的米莉,你每次都会改变整个场景,而不是向sceneView.scene中添加节点
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let frame = sceneView.session.currentFrame else { return }
let camMatrix = SCNMatrix4(frame.camera.transform)
let position = SCNVector3Make(camMatrix.m41, camMatrix.m42, camMatrix.m43)
let object = SCNScene(named: "art.scnassets/dontCare.scn")!.rootNode
object.position = position
sceneView.scene.rootNode.addChildNode(object)}
发布于 2019-07-25 21:13:27
您必须在ARSCNView上添加多个子节点

let careScene = SCNScene.init(named: "art.scnassets/dontCare.scn")
let childNode = (careScene?.rootNode.childNode(withName: "Frame", recursively: false))!
childNode.position = SCNVector3(x,y,z)
scenView.scene.rootNode.addChildNode(childNode)https://stackoverflow.com/questions/54375885
复制相似问题