using UnityEngine; public class PlayerUIRenderer : MonoBehaviour { private Camera cam; private GameObject inventoryCanvas; private GameObject bankVaultCanvas; private void Awake() { cam = GetComponent(); } private void Start() { inventoryCanvas = UIManager.Instance.Inventory; bankVaultCanvas = UIManager.Instance.BankVaultCanvas; cam.enabled = false; // camera needs to be disabled, we will render manually. } private void FixedUpdate() { Client.Instance.UnderWaterEffectEnabled = false; // only render the camera if menus that use it are open. if (CharacterRenderMenusOpen()) { cam.Render(); } if (Client.Instance.CheckIfPlayerIsUnderWater()) { Client.Instance.UnderWaterEffectEnabled = true; } } private bool CharacterRenderMenusOpen() { return inventoryCanvas.activeInHierarchy || bankVaultCanvas.activeInHierarchy || UIManager.Instance.CharacterSelectCanvas.activeInHierarchy; } public bool CharacterSelectCanvasOpen() => UIManager.Instance.CharacterSelectCanvas.activeInHierarchy; public Camera GetCamera() => cam; }