2025-09-24 11:24:38 +05:00

46 lines
988 B
C#

using UnityEngine;
namespace TPSBR
{
public class SceneCamera : SceneService
{
// PUBLIC MEMBERS
public Camera Camera => _camera;
public ShakeEffect ShakeEffect => _shakeEffect;
public bool EnableCamera { get; set; } = true;
// PRIVATE MEMBERS
[SerializeField]
private Camera _camera;
[SerializeField]
private AudioListener _audioListener;
[SerializeField]
private ShakeEffect _shakeEffect;
private int _cameraCullingMask;
// SceneService INTERFACE
protected override void OnInitialize()
{
base.OnInitialize();
_cameraCullingMask = _camera.cullingMask;
}
protected override void OnTick()
{
if (Scene is Gameplay)
{
_audioListener.enabled = Context.HasInput;
_camera.enabled = Context.HasInput;
// We are just switching culling mask as disabling would mean more complex camera setup to not stop UI rendering
_camera.cullingMask = EnableCamera == true ? _cameraCullingMask : 0;
}
}
}
}