我正在寻找如何更改大 obj 文件的子元素的颜色或位置。 目前,我正在加载一个巨大的 obj,其中包含超过 100 个子元素
<a-entity obj-model="obj: #band-obj; mtl: #band-mtl" position="-5, -5, -5" rotation="0, 0, 0" scale="5, 5, 5"></a-entity>
(obj 和 mtl 已定义)。
有没有人成功地制作了一个巨大模型的动画部分,并且能够给我一个关于如何使用 js 获取子元素的提示?
最佳答案
您可以使用yourEntity.getObject3D('mesh')
获取网格。从那里您可以访问子树,并可以使用诸如 getObjectByName
或 getObjectByProperty
或 traverse
之类的方法。
网格也会在 model-loaded
或 object3dset
事件的事件详细信息中返回。
AFRAME.registerComponent('model-modifier', {
init: function () {
this.el.addEventListener('object3dset', evt => {
if (evt.detail.type !== 'mesh') { return; }
this.modifyMesh(this.el.getObject3D('mesh'));
});
},
modifyMesh: function (mesh) {
// Modify here.
}
});
// ...
<a-entity obj-model model-modifier>
关于javascript - 更改对象子元素的颜色或位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50098839/