k/CameraSetupComponent.cs
namespace Sandbox.k;
[Title( nameof(CameraSetupComponent))]
[Category( "k.Cameras" )]
public sealed class CameraSetupComponent : Component
{
[RequireComponent] private CameraComponent _camera { get; set; }
private float _currentFovPreference;
protected override void OnAwake()
{
_currentFovPreference = Preferences.FieldOfView;
UpdateFov(_currentFovPreference);
}
protected override void OnUpdate()
{
// its ok mate
if (_currentFovPreference == Preferences.FieldOfView) return;
_currentFovPreference = Preferences.FieldOfView;
UpdateFov(_currentFovPreference);
}
private void UpdateFov(float fov)
{
var fovMultiplier = Application.IsEditor ? 0.55f : 0.75f;
_camera.FieldOfView = Screen.CreateVerticalFieldOfView(fov * fovMultiplier);
}
}