目前,我正在制作有关ARKit的演示。我正在使用两个3D对象.dae
文件。还实现了该对象的旋转,但是在这里我遇到一个问题,因为对象连续旋转,我们如何只旋转一次?
如何替换屏幕上的那些对象?
我还提到了以下代码。
func addAction(node:SCNNode) {
let rotateOne = SCNAction.rotateBy(x: CGFloat(Float.pi),
y: 0,
z: 0,
duration: 5.0)
node.runAction(rotateOne)
}
答案 0 :(得分:0)
实际上,您的函数只会旋转一个对象。主要问题是,您在哪里调用此方法?请确保您没有在 renderer(_:updateAtTime:)或类似名称中调用此方法,否则您的方法将称为无穷大。
如果要在动画后替换此对象,则可以对closure使用action。
例如:
func addAction(node:SCNNode) {
let rotateOne = SCNAction.rotateBy(x: CGFloat(Float.pi), y: 0, z: 0, duration: 5.0)
node.runAction(rotateOne) {
node.removeFromParentNode()
yourRootNode.addChildNode(newNode)
}
}
希望有帮助。