我有多个实体,我想共享同一材料。因此,如果我更改了材质属性,则将使用该材质对场景中所有实体的属性进行更新。
这可能吗?如果是这样,怎么办?
答案 0 :(得分:2)
手动创建材质并附加到网格:
var material = new THREE.SomeMaterial();
AFRAME.registerComponent('my-material', {
this.el.getObject3D('mesh').material = material;
});
<a-entity geometry my-material></a-entity>
然后,您可以在需要时手动操作材质,并且该材质将自动应用到使用它的所有实体/网格(例如material.color.set(0.5, 0.5, 0.5)
)。
mixin方法也可以使用,尽管效率略低,抽象程度更高
答案 1 :(得分:1)
将a-mixin
与物质成分一起使用并操纵其属性。所有应用了该实体的实体都会更新: