如何在A帧中将实体结合在一起

时间:2018-01-09 00:19:04

标签: javascript html entity aframe

有谁知道如何将2个或更多实体合并为A帧中的单个实体? 这甚至可能吗? 我正在构建诸如表格之类的对象,我想将表格与它的腿结合起来,这样它就是一个对象。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

如果您不需要合并其几何/材质,您只需将它们添加到父实体即可。 如果您有<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

答案 1 :(得分:0)

根据您想要做什么,您可以使用mergeTo property&#34将某些实体的几何合并到另一个实体中;合并的几何将继承目标几何的材质&# 34;