overte-Armored-Dragon/examples/depthReticle.js

29 lines
1.1 KiB
JavaScript

var lastDepthCheckTime = 0;
// Do some stuff regularly, like check for placement of various overlays
Script.update.connect(function(deltaTime) {
var TIME_BETWEEN_DEPTH_CHECKS = 100;
var timeSinceLastDepthCheck = Date.now() - lastDepthCheckTime;
if (timeSinceLastDepthCheck > TIME_BETWEEN_DEPTH_CHECKS) {
var reticlePosition = Reticle.position;
var pickRay = Camera.computePickRay(reticlePosition.x, reticlePosition.y);
var result = Overlays.findRayIntersection(pickRay);
if (!result.intersects) {
result = Entities.findRayIntersection(pickRay, true);
}
if (result.intersects) {
// + JSON.stringify(result)
print("something hovered!! result.distance:" +result.distance);
Vec3.print("something hovered!! result.intersection:", result.intersection);
Reticle.setDepth(result.distance);
} else {
Reticle.setDepth(100.0);
print("NO INTERSECTION...");
var pointAt2D = Reticle.position;
var pointAt3D = HMD.worldPointFromOverlay(pointAt2D);
}
}
});