Hello! This might be a simple issue; but I can’t seem to figure it out.
I want to put a reticle in the center of the google cardboard view so the user knows what they are looking at.
I figured “Oh, I’ll just use a GUI element and GUI.Draw to place a reticle in the center of both cameras” so I did that and they are not centered because the google cardboard SDK does a camera distortion which makes finding the center a bit difficult.
You can see the issue here. So does anyone have an idea as to what I could do to make this work? Does the reticle have to be a 3d object?
Well, I figured it out. If someone finds a better solution, I’ll select that as an answer; but in the meanwhile here’s what I did:
Create a sphere or other 3d object that will act as a reticle. Set it’s shader to be the Cardboard SDK’s Solidcolor shader. This will make it render on top of all other objects to get the appearance I desired.
Here’s some good resources I found on my search:
Google’s Unity Developer Guide (Look under “GUI in VR” for cursor options.)
Make an object draw on top of others
Here is the result from that:
So recently there was an update on the Unity SDK, they included a script called CardboardReticle, and you can use this to make the reticle, but it’s a little tricky.
What you want to do is make a MeshRenderer that’s a child of the MainCamera in the CardboardHead prefab, I did that by creating a sphere and deleting everything but the transform and the mesh renderer (That’s how you tell I’m a Unity noob, tell me if there’s a better way).
Once that’s done drag the CardboardReticle script (under Cardboard>Scripts>UI) to the mesh renderer, select CardboardReticleMaterial as the MeshRenderer’s material (‘Element 0’ is how it appears to me) and you should have your reticle! Just adjust the reticle distance from the cameras to adjust it’s size, and don’t forget do disable shadows.
You should have something like this: