添加localRotation移动ArCore节点?

时间:2018-11-26 21:50:59

标签: android arcore sceneview

这让我完全不解。我将此节点放置在场景中,但是一旦添加“ localRotation”,该节点就会移动。如果我不移动它,则看起来不错(位于我期望的中心)。我必须初始化四元数以使其垂直于地板平面/姿势吗?

   scene?.apply {
       boundingBoxNode?.let { scene.removeChild(it) }
       boundingBoxNode = null

       viewModel.boundingBox?.let { box ->
                        MaterialFactory.makeTransparentWithColor(this@MyActivity, boundingBoxColor)
                         .thenAccept { material ->
                              boundingBoxNode = Node().apply {
                                renderable = ShapeFactory.makeCube(box.size, box.center, material).apply {
                                    collisionShape = null
                                    isShadowCaster = false
                                }
                                localRotation = box.rotation
                                scene.addChild(this)
                        }
       }
  }

1 个答案:

答案 0 :(得分:0)

仅供参考,请不要在ShapeFactory.makeCube(box.size,box.center)上设置中心。而是执行此操作(ShapeFactory.makeCube(box.size,Vector3.zero()),以使其以原点为中心。 然后,您可以执行以下操作: worldPosition = box.center来移动它。 我正在旋转一个不居中的盒子:facepalm: