RealityKit – 锚点忽略父锚点变换
RealityKit – Anchor is ignoring parent anchor transform
假设我有这个:
var a = getSphere(0.05, .white)
var b = getSphere(0.04, UIColor.brown)
var c = getSphere(0.03, UIColor.cyan)
var aa = AnchorEntity()
var bb = AnchorEntity()
var cc = AnchorEntity()
aa.transform.translation.y = -0.5
aa.addChild(bb)
bb.addChild(cc)
aa.addChild(a)
bb.addChild(b)
cc.addChild(c)
scene.anchors.append(aa)
aa 锚点及其对象将正确位于 y -0.5,但 bb 和 cc anchors/objects 仍将位于 0,0,0....
这感觉非常有问题。比如...为什么子对象会忽略其父对象转换?
any1 能否说明如何“解决”这个问题?
你不需要那么多嵌套的AnchorEntities。 RealityKit 的场景可以包含嵌套模型实体(也称为父子对)的任何层次结构。尽管如此,为了自动跟踪此结构中每个 3D 元素的位置和方向 - 只需要 ONE 锚点(这是在任何 AR 框架中使用锚点的常规方式)。
let container = Entity()
let modelA = ModelEntity()
let modelB = ModelEntity()
container.addChild(modelA)
modelB.setParent(modelA)
container.position.x = -1.2
modelA.position.x = 0.5 // adjust transform independently
modelB.position.y = 1
let anchor = AnchorEntity() // object being tracked
anchor.addChild(container)
arView.scene.addAnchor(anchor)
假设我有这个:
var a = getSphere(0.05, .white)
var b = getSphere(0.04, UIColor.brown)
var c = getSphere(0.03, UIColor.cyan)
var aa = AnchorEntity()
var bb = AnchorEntity()
var cc = AnchorEntity()
aa.transform.translation.y = -0.5
aa.addChild(bb)
bb.addChild(cc)
aa.addChild(a)
bb.addChild(b)
cc.addChild(c)
scene.anchors.append(aa)
aa 锚点及其对象将正确位于 y -0.5,但 bb 和 cc anchors/objects 仍将位于 0,0,0....
这感觉非常有问题。比如...为什么子对象会忽略其父对象转换?
any1 能否说明如何“解决”这个问题?
你不需要那么多嵌套的AnchorEntities。 RealityKit 的场景可以包含嵌套模型实体(也称为父子对)的任何层次结构。尽管如此,为了自动跟踪此结构中每个 3D 元素的位置和方向 - 只需要 ONE 锚点(这是在任何 AR 框架中使用锚点的常规方式)。
let container = Entity()
let modelA = ModelEntity()
let modelB = ModelEntity()
container.addChild(modelA)
modelB.setParent(modelA)
container.position.x = -1.2
modelA.position.x = 0.5 // adjust transform independently
modelB.position.y = 1
let anchor = AnchorEntity() // object being tracked
anchor.addChild(container)
arView.scene.addAnchor(anchor)