Scenekit:子节点未正确添加到父节点

时间:2019-06-10 12:44:49

标签: ios swift scenekit

我正在使用命中测试将平面节点添加到球体节点。每当我尝试将平面节点添加到球体节点时。每次形状都不一样。我不明白为什么会这样。

代码:

    let sphere = SCNSphere(radius: 10)
    sphere.segmentCount = 360
    let material = textureProvider.getTextureMaterial()
    material.diffuse.contents = UIImage(named: "sample")
    sphere.firstMaterial = material
    let sphereNode = SCNNode()
    sphereNode.geometry = sphere

    sceneView.scene?.rootNode.addChildNode(sphereNode)


func getTextureMaterial() -> SCNMaterial {
    let material = SCNMaterial()
    material.diffuse.mipFilter = .nearest
    material.diffuse.magnificationFilter = .linear
   // material.diffuse.contentsTransform = SCNMatrix4MakeScale(-1, 1, 1)
    material.diffuse.wrapS = .repeat
    material.cullMode = .front
   // material.isDoubleSided = true
    return material
}



@objc func handleTap(rec: UITapGestureRecognizer){
        if rec.state == .ended {
            let location: CGPoint = rec.location(in: sceneView)
            let hits = sceneView.hitTest(location, options: nil)

            if !hits.isEmpty {
                let result: SCNHitTestResult = hits[0]
                 createPlaneNode(result: result)
            }

        }
    }

func createPlaneNode(result : SCNHitTestResult) {
        let plane = SCNPlane(width: 5, height: 5)
        plane.firstMaterial?.diffuse.contents = UIColor.red
        plane.firstMaterial?.isDoubleSided = true
        plane.firstMaterial?.cullMode = .front
        let planeNode = SCNNode()
        planeNode.name = "B"
        planeNode.geometry = plane
        planeNode.position = result.worldCoordinates
        result.node.addChildNode(planeNode)
    }

请帮助

0 个答案:

没有答案