32 lines
876 B
JavaScript
32 lines
876 B
JavaScript
AFRAME.registerComponent('stepback', {
|
|
init: function () {
|
|
this.message = document.getElementById('stepback');
|
|
this.camera = document.getElementById('camera');
|
|
this.lastTime = 0;
|
|
this.limit = - (this.el.getAttribute('geometry').height / 2 - 0.6);
|
|
this.throttling = 300;
|
|
},
|
|
|
|
tick: function (time, delta) {
|
|
if (time - this.lastTime < this.throttling) { return; }
|
|
|
|
var camPos = this.camera.object3D.position;
|
|
var msgPos = this.message.object3D.position;
|
|
|
|
if (camPos.z < this.limit) {
|
|
this.throttling = 20;
|
|
this.message.object3D.visible = true;
|
|
this.message.getObject3D('mesh').material.opacity = 1 - Math.abs(camPos.z - msgPos.z);
|
|
msgPos.x = camPos.x;
|
|
msgPos.y = camPos.y;
|
|
}
|
|
else {
|
|
this.message.object3D.visible = false;
|
|
this.throttling = 300;
|
|
}
|
|
|
|
this.lastTime = time;
|
|
}
|
|
|
|
});
|