ARKit与Reality Composer节点缩放问题:AnchorEntity缩放设置无作用的原因排查
问题原因及解决办法
嗨,一眼就看出问题所在啦!你这段代码里的父子节点关系完全搞反了,这就是缩放没效果的核心原因~
问题分析
你现在的代码是把 mainAnchor(你想作为统一控制的根节点)当成子节点,加到了 myTrackTransformed 和 myCar 下面。这就相当于让根节点变成了两个模型的“孩子”,那你缩放这个“孩子”,自然不会对它的“父节点”(也就是两个模型本体)产生任何影响。
修正后的代码
你需要把两个模型作为子节点添加到 mainAnchor 这个根容器里,这样缩放根节点时,所有子元素都会同步缩放:
let mainAnchor = AnchorEntity(world: [0, 0, 0]) self.arView.scene.addAnchor(mainAnchor) // 调换父子关系:把模型加到根节点下,而不是反过来 mainAnchor.addChild(myTrackTransformed) mainAnchor.addChild(myCar) mainAnchor.scale = [0.1, 0.1, 0.1]
额外说明
这样修改后,你的 myCar 基于JSON数据的移动逻辑完全不受影响——因为它的移动是基于自身坐标系或者父节点(mainAnchor)的坐标系,统一缩放根节点只会改变整体尺寸,不会干扰原有位置计算。
如果你的 myTrackTransformed 或 myCar 之前已经被添加到其他Anchor或场景节点中,记得先调用 myTrackTransformed.removeFromParent() 移除旧的父节点,避免重复渲染的问题哦。
内容的提问来源于stack exchange,提问作者sephiroth85
相关产品推荐
相关产品推荐

