You see, Cameras in Unity are designed to behave like a human eye:
As you can see from the image above, notional cameras have what's called a View Frustum;
To put it simply, it simulates what the human eye would see in real life between a near and far plane (you can always read more here).
Now let's see how I would solve this:
First of all create a Canvas:
- Go to the hierarchy window, Create -> UI -> Canvas and set
UI Scale Mode to
Scale With Screen Size;
- Create an Image object as a child of the newly created Canvas by going (right-click on Canvas) UI -> Image;
- Stretch the image to cover the size of the canvas ( remember to hold down
alt in order to do so) :
Now that you have done that, you could have a "mask" image like these ones for instance (yes, they are both 4k res and you can use them however you want :D):
Remember that when making a mask, the white portion of the image should have an alpha of 0.
- Now that we also have a mask, we can just apply that to the Image we created (when importing the image, remember to set
Texture Type to
Sprite (2D and UI):
And that's it! To improve even more the effect, you could try making the "lenses" with a gradient, adding multiple layers of textures with different drawing orders to create dirt, or waterdrops, animate the mask to act as an helmet that is being put on / took off ecc..
You can really go crazy with post processing effects too; have fun! :D