我正在寻找如何更改大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获得sub-elemtsa的提示?
答案 0 :(得分:2)
您可以使用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>