标签: scntranscaction

SceneKit中的多个串行动画

我希望能够在SceneKit中一个接一个地运行多个动画.我已经实现了一个运行一个动画的函数:

fileprivate func animateMove(_ move: Move) {
    print("Animate move started " + move.identifier)

    // I am creating rotateNode
    let rotateNode = SCNNode()
    rotateNode.eulerAngles.x = CGFloat.pi
    scene.rootNode.addChildNode(rotateNode)

    // Then I am selecting nodes which I want to rotate
    nodesToRotate = ...

    // Then I am adding the nodes to rotate node
    _ = nodesToRotate.map { rotateNode.addChildNode($0) }

    SCNTransaction.begin()
    SCNTransaction.animationDuration = move.animationDuration

    SCNTransaction.completionBlock = {
        rotateNode.enumerateChildNodes { node, _ in
            node.transform = node.worldTransform
            node.removeFromParentNode()
            scene.rootNode.addChildNode(node)
        }
        rotateNode.removeFromParentNode()
        print("Animate move finished " + …
Run Code Online (Sandbox Code Playgroud)

animation ios scenekit swift scntranscaction

5
推荐指数
1
解决办法
1901
查看次数

Swift 3:不能调用非函数类型的值'(() - > Void)?'

这个函数在所有curses(也称为Swift 3)的诅咒之前工作.迁移到Swift 3之后,我的友好且可爱的IDE Xcode显示这个令人沮丧的错误SCNTransaction.completionBlock:

不能调用非函数类型的值'(() - > Void)?'

其他几个帖子处理类似的错误,但这些解决方案都不适用.

线路有什么问题???

func test(_ block: SCNNode, animated: Bool) {
    // Do stuff
    SCNTransaction.begin()
    SCNTransaction.animationDuration = animated ? AnimationDur : 0.0
    SCNTransaction.completionBlock {
        block.removeFromParentNode()
    }
    // Animate stuff
    SCNTransaction.commit()
}
Run Code Online (Sandbox Code Playgroud)

swift swift3 scntranscaction

3
推荐指数
1
解决办法
6440
查看次数

标签 统计

scntranscaction ×2

swift ×2

animation ×1

ios ×1

scenekit ×1

swift3 ×1