如何在 A 框架中将实体联合在一起

How to union entities together in A-frame

有谁知道如何在 A 框架中将 2 个或更多实体合并为一个实体? 这可能吗? 我正在构建 tables 等对象,我想将 table 合并到它的腿上,使它成为一个对象。

如有任何帮助,我们将不胜感激!

如果您不需要合并它们的几何体/材料,您可以将它们添加到父实体中。 如果您有 <a-entity desk><a-entity legs>,您可以像这样组合它们:

<a-entity desk>
    <a-entity leg position="1 0 1"></a-entity> 
    <a-entity leg position="-1 0 -1"></a-entity> 
    <a-entity leg position="1 0 -1"></a-entity> 
    <a-entity leg position="-1 0 1"></a-entity> 
</a-entity>

现在您有了一个父实体,您可以将其与子实体一起旋转/定位。 看看 here.

否则您可以创建一个组件,它会为您创建实体:

AFRAME.registerComponent("table", {
 init: function() {
   let desk = document.createElement("a-entity");
   let leg = document.createElement("a-entity");


   desk.setAttribute("mixin", "desk");
   leg.setAttribute("position", "0.5 0 0.5");
   leg.setAttribute("mixin", "leg");
   // (..)
   desk.appendChild(leg)
   this.el.appendChild(desk);
  }
})

你可以这样使用它:

<a-entity table></a-entity>

或者你可以注册一个原语:

AFRAME.registerPrimitive("a-table", {
     defaultComponents: {
           table: {}
     }
})
<a-table></a-table>

看看here.

根据您具体想要做什么,您可以使用 mergeTo property "Merged geometries will inherit the material of the target geometry"

将一些实体的几何图形合并到另一个实体中