Узел теряет силу тяжести после SCNAction - PullRequest
0 голосов
/ 30 октября 2019

Я бы хотел уронить объект, а затем переместить его обратно наверх и дать ему снова упасть. Первая часть работает, но затем узел, кажется, теряет свою гравитацию и больше не падает. Похоже, что его физическое тело остается на полу и не перемещается SCNActions. Какое решение для этого? Спасибо

    let shape = SCNPhysicsShape(geometry: SCNBox(width: boxSize, height: 0.001, length: boxSize, chamferRadius: 0), options:nil)
    node.physicsBody = SCNPhysicsBody(type: .dynamic, shape: shape)
    ...
    SCNTransaction.begin()
    SCNTransaction.animationDuration = 5 
    let actions = SCNAction.sequence([
        SCNAction.move(to: SCNVector3(x: 0, y: 3, z: -2), duration: 1),
        SCNAction.rotate(by: .pi*2, around: SCNVector3(0,1,0), duration: 1)
    ])
    node.runAction(actions)
    //node.presentation.runAction(actions) //also not working
    SCNTransaction.commit()

1 Ответ

2 голосов
/ 30 октября 2019

Вы должны сообщить физическому симулятору, что физическое тело сместилось, позвонив -resetTransform.

...