如何在ARSCNView上添加SCNNode运行时?

时间:2018-08-23 06:37:44

标签: ios swift swift4 arkit ios12

我必须使用ARKit将SCNNode(可以通过tap事件检测到)添加到ARSCNView中。

现在,我面临的挑战是我必须在检测到的对象旁边动态地在ARSCNView上添加多个带有动画的SCNNode。

目前,我已在“ Scene.scn”上手动添加了SCNNode,如下图所示,

enter image description here

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

class SphereNode : SCNNode {
    private var geo:SCNSphere!

    private  override init () {
        super.init()
    }

    convenience init(withPosition position:SCNVector3,color:UIColor) {
        self.init()
        geo = SCNSphere(radius: 0.007)
        self.geometry = geo
        self.geo.firstMaterial?.diffuse.contents = color
        self.position = position

        self.name = NodeNames.pointNode

    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

现在创建它的对象

let measureNode = SphereNode(withPosition: yourPosition,color:.red)
measureNode.name = "AnyName"

添加

self.sceneView.scene.rootNode.addChildNode(measureNode)