Как переместить сущность обратно в исходное положение - PullRequest
0 голосов
/ 17 апреля 2020

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

При загрузке сцены из реальности 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)
    }

Вместо возврата в исходное положение, шар просто зависает там, где он есть.

1 Ответ

0 голосов
/ 18 апреля 2020

Вместо этого установите физический режим тела на .kinemati c

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

...