Newer
Older
reroad-test / 2020-ryusei / aframe-master / examples / test / raycaster / components / intersect-color-change.js
@ryusei ryusei on 22 Oct 2020 892 bytes パノラマ表示
/* global AFRAME */

/**
 * Change color if entity when intersected by raycaster.
 */
AFRAME.registerComponent('intersect-color-change', {
  init: function () {
    var el = this.el;
    var material = el.getAttribute('material');
    var initialColor = material.color;
    var initialOpacity = material.opacity;

    // Set color using raycaster parent color.
    el.addEventListener('raycaster-intersected', function (evt) {
      var raycasterEl = evt.detail.el;
      var fingerColor = raycasterEl.parentNode.getAttribute('material').color;
      el.setAttribute('material', 'color', fingerColor);
      el.setAttribute('material', 'opacity', 1.0);
    });

    // Reset color.
    el.addEventListener('raycaster-intersected-cleared', function (evt) {
      el.setAttribute('material', 'color', initialColor);
      el.setAttribute('material', 'opacity', initialOpacity);
    });
  }
});