在Scenekit中编辑克隆的变量

时间:2018-11-19 11:01:08

标签: swift sprite-kit clone scenekit

我创建了一个函数,该函数创建了一个包含标签的圆。我需要多次克隆此功能。通过clone()函数,我可以复制完整的几何图形,效果很好。 现在,我需要每个克隆都可以编辑文本标签。我的问题在这里,如何编辑一旦被克隆后“创建”的内容?如何访问克隆变量,在我的示例中是“ labelNode.text”。

这是我完整的代码:

@objc func createInfoPanels(climName: String) -> SCNNode {

let climNode = self.scene.rootNode.childNode(withName: climName, recursively: true)!

let planeGeometry = SCNPlane(width: 1, height: 1)
    planeGeometry.firstMaterial?.diffuse.contents = NSColor.clear

let planeNode = SCNNode(geometry: planeGeometry)
    planeNode.name = "planeNode"
    planeNode.position.y = 4

let skScene = SKScene(size: CGSize(width: 200, height: 200))
    skScene.backgroundColor = NSColor.clear

let rectangle = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 200, height: 200), cornerRadius: 100)
    rectangle.fillColor = .gray
    rectangle.alpha = 0.8
    rectangle.blendMode = .add
    rectangle.lineWidth = 0

let labelNode = SKLabelNode()
    labelNode.text = "°C"
    labelNode.fontSize = 45
    labelNode.position = CGPoint(x: 100, y: 100)
    labelNode.yScale = -1

skScene.addChild(rectangle)
skScene.addChild(labelNode)

let panelMaterial = SCNMaterial()
    panelMaterial.isDoubleSided = false
    panelMaterial.diffuse.contents = skScene

planeGeometry.materials = [panelMaterial]

climNode.addChildNode(planeNode)
planeNode.constraints = [SCNBillboardConstraint()]

return planeNode

}

在此先感谢您的帮助!

0 个答案:

没有答案