aframe获取object3d子项

时间:2018-12-12 16:53:45

标签: three.js aframe

我正在使用gltf模型制作游戏。称为-

<a-asset-item id="orca1" src="../images/models/orca/scene.gltf"></a-asset-item>

,然后以

访问
<a-entity id="orca" position="-1 0.4 -40" gltf-model="#orca1"></a-entity>

<a-entity model-subset="target: #orca"></a-entity>

因此,在model-subset组件中,我试图控制object3d场景,以便克隆它。这是我在那里访问object3d的方式

AFRAME.registerComponent('model-subset', {
  schema: {
    target: { default: '', type: 'selector' }
  },
  init: function() {
    var data = this.data;
    var el = this.el;
    console.log(data.target.object3D.children);
    data.target.addEventListener('model-loaded', function(e) {
      this.model = e.detail.model;
      console.log(this.model)
    })
    }
})

我想了解的是-执行data.target.object3D.children时,我在控制台日志中得到以下内容-

enter image description here

但是e.detail.model在控制台日志中提供了以下内容-

enter image description here

因此,当我尝试从data.target.object3d.children [0]访问“ OSG_Scene”时,在console.log中得到“未定义”。

此外,为什么我无法通过这两种方法之一获取“ OSG_Scene”-

  1. data.target.getObject3D('Scene') OR
  2. data.target.getobjectbyname(“ OSG_Scene”)

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

应为data.target.getObject3D('mesh')