Как вернуть объект в исходное положение

После приложения к мячу линейного импульса и крутящего момента я пытаюсь вернуть мяч в исходное положение.

При загрузке сцены из Reality Composer я сохраняю здесь исходное преобразование мяча.

Experience.loadTestSphereAsync { (result) in
            switch result {
            case .success(let anchor):
                anchor.generateCollisionShapes(recursive: true)
                self.testSphereAnchor = anchor
                self.ball?.physicsBody?.mode = .static
                self.arView.scene.anchors.append(self.testSphereAnchor)
                self.ballStartTransform = self.testSphereAnchor.ball?.transform
                self.targetStartTransform = self.testSphereAnchor.target?.transform
                self.addTapGestures()
            case .failure(let error):
                fatalError(error.localizedDescription)
            }
        }

Чтобы вернуть мяч в исходное положение, я делаю это

func didPressRestartButton() {
        ball?.clearForcesAndTorques()
        ball?.physicsBody?.mode = .static
        ball?.move(to: ballStartTransform!, relativeTo: nil, duration: 0.3)
    }

Вместо того, чтобы вернуться в исходное положение, мяч просто застывает на месте.


person user1905842    schedule 17.04.2020    source источник


Ответы (1)


Вместо этого установите для режима PhysicsBody значение .kinematic.

https://developer.apple.com/documentation/realitykit/physicsbodymode/kinematic

person maxxfrazer    schedule 18.04.2020