我想在一个节点上执行以下操作,该节点是一个简单的球体,没有物理实体,在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]))
我也尝试过所有类型的物理学家,但它也不起作用。似乎只要执行了缩放操作,移动操作就会在序列中不起作用。在一个序列之外,它正在发挥作用。
有任何线索吗?
学家
答案 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]))