diff --git a/src/systems/userinput/devices/oculus-touch-controller.js b/src/systems/userinput/devices/oculus-touch-controller.js index 7ca3e6d2ec77cd486e499ede22fcc0654bf182e0..207d5af2284a11b79dc50d0c97f87f594838dfb9 100644 --- a/src/systems/userinput/devices/oculus-touch-controller.js +++ b/src/systems/userinput/devices/oculus-touch-controller.js @@ -66,10 +66,10 @@ export class OculusTouchControllerDevice { frame[this.path.axis(axis.name)] = frame[paths.device.gamepad(this.gamepad.index).axis(axis.axisId)]; }); - const rayObject = document.querySelector(this.selector).object3D; - rayObject.updateMatrixWorld(); - this.rayObjectRotation.setFromRotationMatrix(rayObject.matrixWorld); - this.pose.position.setFromMatrixPosition(rayObject.matrixWorld); + this.rayObject = this.rayObject || document.querySelector(this.selector).object3D; + this.rayObject.updateMatrixWorld(); + this.rayObjectRotation.setFromRotationMatrix(this.rayObject.matrixWorld); + this.pose.position.setFromMatrixPosition(this.rayObject.matrixWorld); this.pose.direction.set(0, 0, -1).applyQuaternion(this.rayObjectRotation); this.pose.fromOriginAndDirection(this.pose.position, this.pose.direction); frame[this.path.pose] = this.pose;