Узел, следующий за CameraNode со своей физикой - PullRequest
0 голосов
/ 08 июня 2018

Я разрабатываю игру AR, и мне нужно добавить узел на сцену, который будет следовать за cameraNode.Я попытался присоединить этот узел к иерархии камерного кода следующим образом:

self.sceneView.pointOfView?.addChildNode(node)

И узел действительно следует за камерой, но его физическое тело не движется вместе с ним, как я вижу, запущенное приложение в режиме отладки.

self.sceneView.debugOptions = [ARSCNDebugOptions.showWorldOrigin, SCNDebugOptions.showPhysicsShapes]

Как добавить узел, чтобы выполнить оба условия?:

  1. Узел следит за движениями камеры
  2. Его физикаБод тоже следит за движениями камеры

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Все стало намного проще.Если вы хотите добавить узел, следующий за камерой, с его физическим телом, вы должны добавить его в иерархию камер, как я делал ранее, но (это важно) вы должны сделать его тело кинематическим.

let body = SCNPhysicsBody(type: .kinematic, shape: SCNPhysicsShape(node: node))

Теперь это работаетсовершенно

0 голосов
/ 08 июня 2018

Для узла, следующего за камерой, вам необходимо использовать SCNDistanceConstraint и SCNLookAtConstraint.

Подробнее о них здесь .

Также используйте SCNPhysicsVehicle класс для имитации реалистичной физики поведения движения.

Подробнее об этом здесь .

...