【发布时间】:2021-02-21 03:19:10
【问题描述】:
我正在尝试将 Object3D 添加到我的 gltf 模型并将其放置在模型上方。我正在这样做:
this.el.addEventListener('model-loaded', () => {
this.bar = new MyCustomObject3D();
const size = new THREE.Vector3();
let box = new THREE.Box3().setFromObject(this.el.object3D);
box.getSize(size)
let height = size.y + 1;
this.bar.position.set(0, height, 0);
this.el.setObject3D("bar", this.bar);
// same result:
// this.el.object3D.add(this.bar);
})
height 是 2,如果我将具有此位置的元素放置到根(即场景)中,它将正确放置在模型的正上方。但是当我将它添加到Object3D 时,它被放置在模型下方的某个位置,高度约为 0.5。只有将高度乘以 25,我才能达到正确的位置。
那么如何计算将新的Object3D 放置在模型上方而不将其乘以随机数所需的确切偏移量?
更新:
添加reproducible example。注意我必须传递给 GLTF 模型的宽度和高度。
【问题讨论】:
-
尝试复制,但seems to be working。你能上传一个最小的例子到glitch吗?
-
@PiotrAdamMilewski 感谢您的回复,确实它适用于原语,但不适用于模型:glitch.com/edit/#!/amused-humorous-moon
-
它适用于模型,但显然不适用于蒙皮的模型
标签: javascript aframe