Laser pointer style UI interaction in VR

I’m trying to implement the laser pointer style interaction for world space UI in VR. Similarly to how it’s done in the experimental Unity VR editor or Tilt Brush:


Basically I need to replace the mouse with an arbitrary world space raycast from the motion controller.

I’ve seen two different approaches so far, both of which had some issues.

An older tutorial from Oculus uses a custom GraphicRaycast and InputModule to implement gaze aka. look-at controls. This approach can’t really be adapted to motion controllers. You can only interact with UI that is on the screen. With motion controllers it is possible that neither the UI nor the controller are visible and interaction should still work.

The VR Samples project uses Physics.Raycasts and colliders instead. I think this should work with motion controllers as well, since you just need to change the raycast parameters. But this project doesn’t seem to use actual UI at all. It’s just simple meshes instead of world space canvases.

I would really like to figure out how to implement a world space UI canvas with laser pointer style interaction. Is it not possible at all to do arbitrary world space raycasts into a canvas?


i will try to add eyegazer to the controler, and test the sampel scenes, i will post the results if i dont forget.

Hi @DrummerB @SpiralConDave

did you find a good solution for this problem? I have the same issue and my actual solution is to use a Physics Raycasts such as the one of the Unity VR Samples and simply attach colliders to every UI Canvas element. It works but I was just wondering if there is a better solution.