using System; using UnityEngine; using Cinemachine; namespace BITKit { [Serializable] public class CinemachineBasedAds:IProvider { public T Get() { return CinemachineHelper.Singleton.Ads is T t? t : default; } } public class CinemachineHelper : MonoBehaviour { internal static CinemachineHelper Singleton { get; private set; } [SerializeReference, SubclassSelector] public References ads; public float Ads { get; private set; } public CinemachineBrain brain; private void Awake() { Singleton = this; } private void FixedUpdate() { var playerConfig = Data.Get(); var currentActive = brain.ActiveVirtualCamera as CinemachineVirtualCamera; if (currentActive is not null && playerConfig is not null) { var currentFov = currentActive.m_Lens.FieldOfView; Ads = currentFov / playerConfig.Fov; } } } }