如何更新 A-Frame 中的实体或对象?

How do I update entities or objects in A-Frame?

我正在使用可以在 HTML 中编码的组件。例如,对于 text geometry component,我创建了文本:

<a-entity text="text: 0"></a-entity>

如何更新 text 组件的 text 属性?

Entity.setAttribute

就像更新普通 DOM 元素一样,我们可以使用 setAttribute.

el.setAttribute('visible', false);

如果一个组件有多个属性,我们有三个参数。组件名称,属性名称,值:

el.setAttribute('material', 'color', 'black');
el.setAttribute('text', 'text', '1');

将此代码放在哪里?在一个组件内会很好:

AFRAME.registerComponent('update-text-every-second', {
  init: function () {
    var el = this.el;
    var i = 0;

    setInterval(function () {
      el.setAttribute('text', 'text', i.toString());
    }, 1000);
  }
});

并使用:

<a-entity text="text: 0" update-text-every-second></a-entity>