Following the google-vr sample I manage to add a camera and controller to my scene. The next thing I need is to get the distance between my controller to any pointed game object in the scene. After searching for a while, I cannot find any tutorial nor information on how to get the distance.
So, is there any newest working tutorial on how to do this? (Many tutorial on the internet is outdated since google updates its API so frequently) Or it is actually a simple task i.e. I can get the value from GvrPointerInputModule.Pointer / GvrLaserPointer / some other GVR class? Thanks in advance~
Just as I suspected,
GvrLaserPointer
is the answer. If itsCurrentRaycastResult.gameObject
is not null, then the laser is intersecting with something. Then, we can get the intersection point fromCurrentRaycastResult.worldPosition
. Using this point, we can easily calculate the distance.Note: Just in case anyone failing with this method, like I did before. Check your ray casting group. Make sure that your
Raycaster Event Mask
inGVRPointerPhysicsRaycaster
only include the desired layers. And if you have any canvas in screen space, check itsBlocking Mask
inGraphic Raycaster
. It'sEverything
by default and your pointer may keep intersecting with the canvas, resulting in "weird" intersection point. This the cause of my problem, and to fix it, I selectNothing
forBlocking Mask
, and voila.