Keeping Horizontal FOV the same

I ran into this problem. Unity’s Cameras FOV is the vertical FOV with no option to switch to horizontal FOV.

This means that a game on an iPad (4:3) will actually view less things (things from the right and left will be cut). That’s not desirable, since it’s silly that a device with a much bigger screen will actually show less stuff.

Now, in my game, I change FOV often. One solution would be to add to the code, every time I change fov for whatever reason, to add a slight bigger number in the case of an iPad.

But what happens when I have animations? Animations that animate the FOV as well? Do I have to do duplicate animations in case of an iPad? Do I ran something on Update() that adds something to the FOV every frame? (that seems like a waste).

Anyone has any experience with this issue?

The way unity works now is correct:

on 4:3 and 16:9 devices of similar res, it should have the same amount of pixels along Y, but more or less along X. You’re making a problem that doesn’t exist. It’s not fov you need to change if that’s the case, it is camera distance if you’re wanting it to work how you expect.

How is this a problem for you - I am just curious. What animation problem? All I see is that you should ideally be designing for 4:3 and 16:9 is bonus extra to the sides. This would be a better way to approach the project IMHO (and it’s what we’ve done) - and that’s exactly how films work. Films don’t get smaller, they crop the sides on 4:3.

Many films letterbox the image rather than crop as they want to show the whole film. Films and games should decide how to treat the aspect ratio on a case by case basis.

I have a 2D game where I change the orthographic size depending on aspect ratio and screen size (it is turn based so the iPad player is gaining no competitive advantage from seeing a lot more of the play area, just convenience). I just have a var stored that I multiply any orthographic size changes by. You can do something similar with a perspective camera, although as hippocoder say, changing the camera position rather than the FOV is usually the best option. Of course you can just make the screen show all you need in the worst aspect ratio and treat anything else seen as a bonus, unless that extra area gives a competitive advantage.

Why…?

No I am not, I just want to keep the horizontal FOV the same instead of the Vertical FOV. I don’t want to move the camera.

I designed for 3:2. Having extra view port for 16:9 is fine. Having less for 4:3 (iPad) is not. I might as well letterbox it.

Why would I necessarily want extra bonus to the sides and not extra bonus at the top and bottom?

And some movies that have extra height sometimes release on bluray with the extra height added (They show at theaters in cinemascope, but the 16:9 release has more at the top and bottom, there is a term for it but I don’t remember it now).

Anyway, my problem is that, while I can just add a second option in scripts to have a slightly wider fov in case of a 4/3 screen, I pretty much have to redo camera animations that also animate the FOV.

EDIT: Just to clarify, I am not implying that Unity’s current implementation of FOV (vertical) is wrong, I am just saying it is a problem for me, and that an option to switch to horizontal FOV would be nice (which is something a lot of 3D modelling software do).