| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- using Fort23.Mono;
 
- using UnityEngine;
 
- using UnityEngine.Rendering.Universal;
 
- public class CustomCameraStack : MonoBehaviour
 
- {
 
-     private UniversalAdditionalCameraData _cameraData;
 
-     public Camera camera;
 
-     public static CustomCameraStack currCustomCameraStack;
 
-     private void OnEnable()
 
-     {
 
-         currCustomCameraStack = this;
 
-         SetUICamera();
 
-         camera = GetComponent<Camera>();
 
-     }
 
-     public void SetUICamera()
 
-     {
 
-         if (UIManager.Instance != null && UIManager.Instance.UICamera != null)
 
-         {
 
-             UniversalAdditionalCameraData cameraData = UIManager.Instance.UICamera.gameObject.GetComponent<UniversalAdditionalCameraData>();
 
-             if (cameraData != null)
 
-             {
 
-                 UIManager.Instance.CurrCustomCameraStack = this;
 
-                 cameraData.renderType = CameraRenderType.Overlay;
 
-             }
 
-             AddCamera(UIManager.Instance.UICamera);
 
-         }
 
-     }
 
-     private void Update()
 
-     {
 
-         if (currCustomCameraStack == this && UIManager.Instance != null && UIManager.Instance.CurrCustomCameraStack == null)
 
-         {
 
-             SetUICamera();
 
-         }
 
-     }
 
-     public void AddCamera(Camera camera)
 
-     {
 
-         if (_cameraData == null)
 
-         {
 
-             _cameraData = GetComponent<Camera>().GetUniversalAdditionalCameraData();
 
-         }
 
-         if (!_cameraData.cameraStack.Contains(camera))
 
-         {
 
-             _cameraData.cameraStack.Add(camera);
 
-         }
 
-     }
 
-     public void RemoveCamera(Camera camera)
 
-     {
 
-         if (_cameraData == null)
 
-         {
 
-             _cameraData = GetComponent<Camera>().GetUniversalAdditionalCameraData();
 
-         }
 
-         if (_cameraData.cameraStack.Contains(camera))
 
-         {
 
-             _cameraData.cameraStack.Remove(camera);
 
-         }
 
-     }
 
-     private void OnDisable()
 
-     {
 
-         if (_cameraData != null && _cameraData.cameraStack != null && _cameraData.cameraStack[^1] != null && UIManager.Instance.CurrCustomCameraStack == this)
 
-         {
 
-             UniversalAdditionalCameraData cameraData = _cameraData.cameraStack[^1].gameObject.GetComponent<UniversalAdditionalCameraData>();
 
-             if (cameraData != null)
 
-             {
 
-                 cameraData.renderType = CameraRenderType.Base;
 
-             }
 
-             UIManager.Instance.CurrCustomCameraStack = null;
 
-         }
 
-         _cameraData.cameraStack.Clear();
 
-     }
 
- }
 
 
  |