Могут ли организации использовать один и тот же материал? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть несколько сущностей, которые я хотел бы поделиться одним и тем же материалом. Поэтому, если я внесу изменение в свойства материала, свойства будут обновлены для всех объектов в сцене, использующих этот материал.

Возможно ли это? Если да, то как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Создайте материал вручную и прикрепите к сетке:

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 также работает, хотя и несколько менее эффективен и более отвлечен

0 голосов
/ 16 ноября 2018

Используйте a-mixin с компонентом материала и манипулируйте его атрибутами. Все сущности, к которым он применен, обновят:

https://aframe.io/docs/0.8.0/core/mixins.html#sidebar

...