我正在尝试在iOS上的SceneKit中移动节点集合,但我收到了一个神秘的错误。到目前为止,这是我的代码:
func renderer(aRenderer: SCNSceneRenderer, updateAtTime time: NSTimeInterval) {
let cubes = scene.rootNode.childNodesPassingTest { (node, stop) -> Bool in node.name == "cube" }
for cube in cubes {
cube.position = SCNVector3(x: cube.position.x - 5.0, y: cube.position.y, z: cube.position.z)
}
}
在cube.position = ...
行上,我得到'@lvalue $T7' is not identical to 'CGPoint!'
这个错误是什么意思?此外,如果有更好的方法循环这些节点,请告诉我!感谢。
答案 0 :(得分:3)
childNodesPassingTest
returns an [AnyObject]
并且Swift无法确定cube
的类型(显然它认为position
属性是CGPoint!
cubes
})。明确地将[SCNNode]
强制转换为for cube in cubes as [SCNNode] {
cube.position = SCNVector3(x: cube.position.x - 5.0, y: cube.position.y, z: cube.position.z)
}
应该修复它:
{{1}}