SceneKit move:在缩放操作后,动作不在一系列动作中

时间:2018-05-05 11:43:30

标签: ios swift scenekit

我想在一个节点上执行以下操作,该节点是一个简单的球体,没有物理实体,在scenekit编辑器中创建:

    let ScaleDown = SCNAction.scale(to: 0, duration: 1)
    let ScaleUp = SCNAction.scale(to: 0.4, duration: 2)
    let Move = SCNAction.move(to: SCNVector3.init(InitialCharacterGridCoordinates.x, 0, InitialCharacterGridCoordinates.y), duration: 0)
    CharacterNode.runAction(SCNAction.sequence([ScaleDown, Move, ScaleUp]))

问题是Move动作没有做任何事情。但是,如果我这样做,它的工作原理:

    CharacterNode.runAction(SCNAction.sequence([Move, ScaleDown, ScaleUp]))

我也尝试过所有类型的物理学家,但它也不起作用。似乎只要执行了缩放操作,移动操作就会在序列中不起作用。在一个序列之外,它正在发挥作用。

有任何线索吗?

学家

1 个答案:

答案 0 :(得分:0)

使用下面的代码,我得到相同的结果。我无法看到您原来的位置坐标,但您可能正在移动到您已经占据的位置?

            ship.position = SCNVector3Make(5, 0, 5)
            let ScaleDown = SCNAction.scale(to: 0, duration: 1)
            let ScaleUp = SCNAction.scale(to: 0.4, duration: 1)
            let Move = SCNAction.move(to: SCNVector3.init(5, 0, 5), duration: 1)
            let Home = SCNAction.move(to: SCNVector3.init(0, 0, 0), duration: 1)
            ship.runAction(SCNAction.sequence([ScaleDown, Move, ScaleUp, Home, Move, ScaleDown, ScaleUp]))