30 lines
670 B
JavaScript
30 lines
670 B
JavaScript
AFRAME.registerComponent('copy-texture', {
|
|
dependencies: ['geometry', 'material'],
|
|
|
|
schema: {
|
|
from: {type: 'selector'}
|
|
},
|
|
|
|
init: function () {
|
|
const data = this.data;
|
|
|
|
data.from.addEventListener('materialtextureloaded', () => { this.copyTexture(); });
|
|
this.copyTexture();
|
|
},
|
|
|
|
copyTexture: function () {
|
|
const el = this.el;
|
|
const target = this.data.from;
|
|
const material = el.getObject3D('mesh').material;
|
|
|
|
if (!target.getObject3D('mesh')) { return; }
|
|
|
|
material.map = target.getObject3D('mesh').material.map;
|
|
|
|
if (!material.map) { return; }
|
|
|
|
material.map.needsUpdate = true;
|
|
material.needsUpdate = true;
|
|
}
|
|
});
|