首页 > 解决方案 > 如何修改 A-frame 中的默认组件?

问题描述

旋转、位置是默认附加到 A 框架实体的组件。我想修改这些组件并将更改应用于实体。

例如,如果我想创建一个新组件,请说“positionnew”,并更改默认位置。与通常位置组件的变化是添加了默认值:{x: 0, y: -2, z: -2}

 AFRAME.registerComponent('positionnew', {
  schema: { type: 'vec3', default: {x: 0, y: -2, z: -2} },

  update: function () {
    var object3D = this.el.object3D;
    var data = this.data;
    object3D.position.set(data.x, data.y, data.z);
  }
});

但是,我看不到任何变化。请帮忙。

标签: javascripthtmlthree.jsaframe

解决方案


我想出了一个办法。这是代码。update 需要改成 init

    AFRAME.registerComponent('positionnew', {
  schema: { type: 'vec3', default: {x: 0, y: 2, z: -2} },

   init: function () {
    var object3D = this.el.object3D;
    var data = this.data;
    object3D.position.set(data.x, data.y, data.z);
  }
});

推荐阅读