【问题标题】:Node following cameraNode with its physicsBody节点跟随 cameraNode 及其物理体
【发布时间】:2018-06-08 10:32:24
【问题描述】:

我正在开发一款 AR 游戏,我需要在场景中添加一个节点,该节点将跟随 cameraNode。 我试图像这样将该节点附加到相机节点的层次结构中:

self.sceneView.pointOfView?.addChildNode(node)

并且节点确实跟随相机,但它的物理主体并没有随着它移动,因为我看到在调试模式下运行应用程序。

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

我应该如何添加节点来执行这两个条件?:

  1. 节点跟随相机移动
  2. 它的physicsBody 也跟着相机移动

【问题讨论】:

    标签: swift scenekit augmented-reality arkit


    【解决方案1】:

    对于跟随摄像头的节点,您需要使用SCNDistanceConstraintSCNLookAtConstraint

    了解他们here

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

    阅读它here

    【讨论】:

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

    一切都变得容易多了。如果你想在相机后面添加一个节点及其物理体,你应该像我之前做的那样将它添加到相机节点层次结构中,但是(很重要)你应该让它的身体运动学类型。

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

    现在完美运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-29
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多