добавление localRotation перемещает узел ArCore? - PullRequest
0 голосов
/ 27 ноября 2018

Это меня совершенно озадачило.Я помещаю этот узел в сцену, но как только я добавляю «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 голосов
/ 27 ноября 2018

К вашему сведению, не устанавливайте центр на ShapeFactory.makeCube (box.size, box.center).Сделайте это вместо этого (ShapeFactory.makeCube (box.size, Vector3.zero ()) так, чтобы он был центрирован на источнике. Затем вы можете сделать: worldPosition = box.center, чтобы переместить его. Я вращал прямоугольник, который не центрировался: Facepalm:

...