我创建了一个函数,该函数创建了一个包含标签的圆。我需要多次克隆此功能。通过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
}
在此先感谢您的帮助!