对象的一个​​子元素的颜色或位置

时间:2018-04-30 10:41:46

标签: javascript aframe

我正在寻找如何更改大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的提示?

1 个答案:

答案 0 :(得分:2)

您可以使用yourEntity.getObject3D('mesh')获取网格。从那里您可以访问子树,并可以使用getObjectByNamegetObjectByPropertytraverse等方法。

model-loadedobject3dset事件的事件详细信息中也会返回网格。

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>