【问题标题】:aframe get object3d childrenaframe 获取 object3d 孩子
【发布时间】:2018-12-15 14:37:32
【问题描述】:

我正在为游戏使用 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>

因此,在模型子集组件中,我试图控制 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 时,我在控制台日志中得到以下信息 -

但 e.detail.model 在控制台日志中给出以下内容 -

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

另外,为什么我无法通过这两种方法获得“OSG_Scene” -

  1. data.target.getObject3D('Scene')
  2. data.target.getobjectbyname("OSG_Scene")

非常感谢您的帮助。

【问题讨论】:

  • 你试过data.target.object3D.getobjectbyname还是data.target.object3D.getObjectByName

标签: three.js aframe


【解决方案1】:

应该是data.target.getObject3D('mesh')

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 2014-07-09
    • 2013-09-27
    • 1970-01-01
    • 2012-11-19
    • 2021-01-02
    • 2013-03-10
    • 2018-08-10
    • 1970-01-01
    相关资源
    最近更新 更多