添加 localRotation 移动 ArCore 节点?
adding localRotation moves ArCore Node?
这让我百思不得其解。我把这个节点放在场景中,但是我一加上"localRotation",节点就动了。如果我不移动它看起来很好(位于我期望的中心位置)。我是否必须初始化四元数,使其垂直于地板 plane/pose?
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)
}
}
}
仅供参考,不要将中心设置在 ShapeFactory.makeCube(box.size、box.center)上。改为执行此操作 (ShapeFactory.makeCube(box.size, Vector3.zero()) 以便它以原点为中心。
然后你可以这样做:
worldPosition = box.center 移动它。
我在旋转一个不居中的盒子 :facepalm:
这让我百思不得其解。我把这个节点放在场景中,但是我一加上"localRotation",节点就动了。如果我不移动它看起来很好(位于我期望的中心位置)。我是否必须初始化四元数,使其垂直于地板 plane/pose?
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)
}
}
}
仅供参考,不要将中心设置在 ShapeFactory.makeCube(box.size、box.center)上。改为执行此操作 (ShapeFactory.makeCube(box.size, Vector3.zero()) 以便它以原点为中心。 然后你可以这样做: worldPosition = box.center 移动它。 我在旋转一个不居中的盒子 :facepalm: