【发布时间】:2016-05-26 19:42:44
【问题描述】:
在 SceneKit 中,我创建了一个盒子并希望沿 y 轴平移它,但我希望对该盒子节点的所有变换(平移、旋转、缩放)都不会影响几何体的原始平移。如何使用 SCNNode 完成此任务?
【问题讨论】:
在 SceneKit 中,我创建了一个盒子并希望沿 y 轴平移它,但我希望对该盒子节点的所有变换(平移、旋转、缩放)都不会影响几何体的原始平移。如何使用 SCNNode 完成此任务?
【问题讨论】:
使用SCNNode->SCNNode->SCNGeometry 对对象进行双重包装相当简单。
let planeBox = SCNBox(width: 50.0, height: 50.0, length: 1.0, chamferRadius: 0.0)
planeBox.firstMaterial?.diffuse.contents = UIColor(white: 0.0, alpha: 1.0)
let planeNode = SCNNode(geometry: planeBox)
planeNode = SCNMatrix4MakeTranslation(0.0, 50.0, 0.0)
let wrappingNode = SCNNode()
wrappingNode.addChildNode(planeNode)
scene.rootNode.addChildNode(wrappingNode)
然后对 wrappingNode 的所有后续更新都将与原始翻译隔离。
【讨论】: