javascript - 更改对象子元素的颜色或位置

标签 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 获取子元素的提示?

最佳答案

您可以使用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>

关于javascript - 更改对象子元素的颜色或位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50098839/

相关文章:

javascript - 谷歌地图错误

virtual-reality - A-Frame 物理系统 : custom physics materials

javascript - 将点击方法应用于外部 div 但不应用于内部 div

javascript - 如何避免表单提交出错?

javascript - 带有 Javascript 的 Excel 宏

javascript - 将事件加载到 FullCalendar

javascript - 如何在 Aframejs 中加载 3d 模型?它目前在 threejs 中运行良好

javascript - 如何在 A-Frame 中离线使用库存字体?

javascript - 如何使用 Qunit 对 A-Frame 组件进行单元测试?

socket.io - 框架中出现蓝屏