Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift cameraNode后面的节点及其physicsBody_Swift_Scenekit_Augmented Reality_Arkit - Fatal编程技术网

Swift cameraNode后面的节点及其physicsBody

Swift cameraNode后面的节点及其physicsBody,swift,scenekit,augmented-reality,arkit,Swift,Scenekit,Augmented Reality,Arkit,我正在开发一个AR游戏,我需要在场景中添加一个节点,该节点将跟随cameraNode。 我尝试将该节点附加到cameranode的层次结构,如下所示: self.sceneView.pointOfView?.addChildNode(node) 节点确实跟随相机,但它的物理实体并没有随着它移动,因为我看到在调试模式下运行应用程序 self.sceneView.debugOptions = [ARSCNDebugOptions.showWorldOrigin, SCNDebugOptions.s

我正在开发一个AR游戏,我需要在场景中添加一个节点,该节点将跟随
cameraNode
。 我尝试将该节点附加到cameranode的层次结构,如下所示:

self.sceneView.pointOfView?.addChildNode(node)
节点确实跟随相机,但它的物理实体并没有随着它移动,因为我看到在调试模式下运行应用程序

self.sceneView.debugOptions = [ARSCNDebugOptions.showWorldOrigin, SCNDebugOptions.showPhysicsShapes]
我应该如何添加节点以执行这两个条件

  • 节点正在跟随摄影机移动
  • 它的身体也跟着摄像机移动

  • 对于跟随摄影机的节点,需要使用
    SCNDistanceConstraint
    SCNLookAtConstraint

    了解他们

    还可以使用
    SCNPhysicsVehicle
    类来模拟运动行为的真实物理


    读一读。

    一切都变得容易多了。如果要在摄影机后面添加节点及其physicalBody,应将其添加到cameranode层次结构中,就像我之前所做的那样,但(这很重要)应使其躯干为运动学类型

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

    现在它可以完美地工作了

    我尝试同时使用SCNDistanceConstraint和SCNLookAtConstraint,但我没有得到我想要的。起初,节点的方向是错误的,尽管其方向设置得更早。其次,节点不跟随摄影机移动。所以我认为这个解决方案不适合我