gaze-event
v2.0.5
Published
Gaze event for WebVR project
Downloads
9
Maintainers
Readme
gaze-event
Gaze event listeners for webvr threejs project.
It observe basic gaze actions for mesh targets in your three.js project,such as gazeEnter
, gazeLeave
, gazeTrigger
and gazeWait
.
gazeEnter: Emit in first animation frame when target is gazed;
gazeLeave: Emit in last animation frame when target is gazed;
gazeTrigger: Emit in each animation frame when target is gazed;
gazeWait: Emit in a animation frame when target has gazed for a while;
Installation
First,Make sure you have included the three.js for your project.
yarn add gaze-event
ornpm install --save gaze-event
import GazeEvent from 'gaze-event'
orconst gazeEvent = require('gaze-event)
in project with module bundler.
Of course,You can also use <script src="gaze-event/index.js"></script>
without module bundler.
How to use
// init scene, camera, renderer
...
// create crosshair here
// camera.add(createCrosshair());
// create cube
var cube = new THREE.Mesh( geometry, material );
scene.add(cube);
// Step1: init gazeEvent
var gazeEvent = new GazeEvent();
// Step2: add event listener for the cube
gazeEvent.on(cube, 'gazeEnter', function(target) {
target.material.opacity = 0.5; // emit in first frame when the cube is gazed
});
gazeEvent.on(cube, 'gazeLeave', function(target) {
target.material.opacity = 1; // emit in last frame when the cube isn't gazed
});
gazeEvent.on(cube, 'gazeTrigger', function(target) {
target.rotation.y += 0.02; // emite in each frame when the cube is gazed
});
// Step3: update gazeEvent to observe the cube in each animation frame
function animateLoop() { // animate loop for requestAnimationFrame
...
// update gazeEvent
gazeEvent.update(camera);
renderer.render(scene, camera);
}
API
constructor
create a GazeEvent instance.
var gazeEvent = new GazeEvent();
on(target,actionType,callback)
add a gaze action listener for a mesh target, actionType
can be 'gazeEnter'||'gazeLeave'||'gazeTrigger'||'gazeWait'
gazeEvent.on(target,'gazeEnter')
off(target,actionType)
remove a gaze action listener for a mesh target.
gazeEvent.off(mesh,'gazeEnter');
removeAll()
remove all gaze listeners.
gazeEvent.removeAll();
Need Help
Ask questions here.
Any Advise
PR welcome here.
Contributors
YoneChen yorkchan94@gmail.com
License
MIT
Please Star this Project if you like it! Following would also be appreciated!