using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; //using UnityEngine.Rendering.PostProcessing; using UnityEngine.Rendering; using UnityEngine.Rendering.HighDefinition; using UnityEngine.EventSystems; using UnityStandardAssets.Utility; public class PhotomodeManager : MonoBehaviour { [SerializeField] private Volume postProcess; [SerializeField] private Volume photomodeVolumeEffectsDepthOfField; [SerializeField] private Volume photomodeVolumeBrightnessSaturation; [SerializeField] private Transform freeCamera; private FreeCamera freeCameraLogic; [SerializeField] private EventSystem eventSystem; //private ShadowsMidtonesHighlights shadowsMidtonesHighlights; private LiftGammaGain liftGammaGain; private ColorAdjustments colorAdjustments; private DepthOfField depthOfField; private float Gain = 0f; private float saturation = 0f; private float exposure = 0f; private float DepthOfFieldDistance = 0.85f; private float DepthOfFieldIntensity = 40f; private float LogoScale = 1f; #region DefaultValues private float GainDefault; private float saturationDefault; private float exposureDefault; private float DepthOfFieldDistanceDefault; private float DepthOfFieldIntensityDefault; private float logoScaleDefault; #endregion [Header("Panels")] [SerializeField] private GameObject _PhotoModePanel; [SerializeField] private GameObject _cameraPanel; [SerializeField] private GameObject _DepthOfFieldPanel; [SerializeField] private GameObject _picturePanel; [SerializeField] private GameObject _colorFiltersPanel; [SerializeField] private GameObject _bordersPanel; [SerializeField] private GameObject _logoPanel; [SerializeField] private GameObject _posePanel; [SerializeField] private GameObject _QuitPhotomodePanel; [SerializeField] private GameObject _ResetPhotographPanel; [Header("Quit Photomode Buttons UI")] [SerializeField] private GameObject _quitPhotomodeYesPC; [SerializeField] private GameObject _quitPhotomodeNoPC; [SerializeField] private GameObject _quitPhotomodeYesController; [SerializeField] private GameObject _quitPhotomodeNoController; [Header("Reset Photograph Buttons UI")] [SerializeField] private GameObject _resetPhotographYesPC; [SerializeField] private GameObject _resetPhotographNoPC; [SerializeField] private GameObject _resetPhotographYesController; [SerializeField] private GameObject _resetPhotographNoController; [Header("Sliders")] public Slider _cameraRollSlider; public Slider _cameraFieldOfViewSlider; public Slider _BrightnessSlider; public Slider _SaturationSlider; public Slider _exposureSlider; public Slider _DepthOfFieldNearBlurSlider; public Slider _DepthOfFieldFarBlurSlider; public Slider _colorFilterIntensitySlider; public Slider _logoScaleSlider; public Slider _headUpDownSlider; public Slider _headLeftRightSlider; public Slider _eyesUpDownSlider; public Slider _eyesLeftRightSlider; [Header("Logo Positions")] [SerializeField] private Transform _topLeftPosition; [SerializeField] private Transform _topCenterPosition; [SerializeField] private Transform _topRightPosition; [SerializeField] private Transform _leftPosition; [SerializeField] private Transform _centerPosition; [SerializeField] private Transform _rightPosition; [SerializeField] private Transform _bottomLeftPosition; [SerializeField] private Transform _bottomCenterPosition; [SerializeField] private Transform _bottomRightPosition; [SerializeField] private int indexPositions = 0; [SerializeField] private int _LogoPosition = 1; private int _indexLogos = 0; [Header("Borders")] [SerializeField] private List _bordersList = new List(); [Header("Logos")] [SerializeField] private GameObject _logos; [HideInInspector] public List _LogoList = new List(); [Header("Logo text")] [SerializeField] private TextMeshProUGUI _logoName; [SerializeField] private TextMeshProUGUI _logoPositionText; [Header("Grids")] [SerializeField] private GameObject _grid; [SerializeField] private GameObject _grid1; [Header("Bools")] public bool HasPressedToOpenPhotoMode; public bool photoModeOpen; private bool updateCameraSliders = true; [HideInInspector] public bool CanHoldDownSlider; [HideInInspector] public bool DepthOfFieldOn; [SerializeField] private bool CanChangeValueBySlider; [SerializeField] public bool LogoVisibilityOn; private bool HideHUD; public bool quitPhotomodePanelOn; public bool canQuitPhotomodePanel = true; public bool resetPhotographPanelOn; public bool canResetPhotograph = true; private bool grid0IsEnabled; private bool grid1IsEnabled; [Header("HUD")] [SerializeField] private Image _PhotomodePanelHUD; [SerializeField] private GameObject _cameraPanelHUD; [SerializeField] private GameObject _depthOfFieldPanelHUD; [SerializeField] private GameObject _picturePanelHUD; [SerializeField] private GameObject _colorFiltersPanelHUD; [SerializeField] private GameObject _bordersPanelHUD; [SerializeField] private GameObject _logoPanelHUD; [SerializeField] private GameObject _posePanelHUD; [SerializeField] private GameObject _buttonsHUD; [SerializeField] private GameObject _borderlineHUD; [SerializeField] private GameObject _bottomUIHUD_Controller; [SerializeField] private GameObject _buttomUIHUD_PC; [SerializeField] private GameObject _gridsHUD; [SerializeField] private GameObject _controllerButtonsIndicationsHUD; [Header("UI Animators")] [Header("Top Buttons")] [SerializeField] private Animator _cameraUIAnimator; [SerializeField] private Animator _depthOfFieldUIAnimator; [SerializeField] private Animator _pictureUIAnimator; [SerializeField] private Animator _colorFiltersUIAnimator; [SerializeField] private Animator _bordersUIAnimator; [SerializeField] private Animator _logoUIAnimator; [SerializeField] private Animator _PoseUIAnimator; [Header("Panel Buttons")] [SerializeField] private Animator _previousLogoLeftButtonAnimator; [SerializeField] private Animator _nextLogoRightButtonAnimator; [SerializeField] private Animator _ButtonPositionLeftArrowAnimator; [SerializeField] private Animator _ButtonPositionRightArrowAnimator; [Header("Photomode Mode")] [SerializeField] private GameObject _photomodeSelectModePanel; [SerializeField] private TextMeshProUGUI PhotomodeModeText; [SerializeField] private Button _photomodeButton; [SerializeField] private Button _lightmodeButton; public bool IsInLightMode; [Header("Photomode Check UI")] public GameObject EyesControlONCheckUI; public GameObject EyesControlOFFCheckUI; [Header("------------------")] #region Buttons OnClick [SerializeField] private Button CameraPanelButton; [SerializeField] private Button DepthOfFieldPanelButton; [SerializeField] private Button PicturePanelButton; [SerializeField] private Button ColorFiltersPanelButton; [SerializeField] private Button BordersPanelButton; [SerializeField] private Button LogoPanelButton; [SerializeField] private Button PosePanelButton; public Button DepthOfFieldON_Button; public Button DepthOfFieldOFF_Button; public Button LogoVisibilityON_Button; public Button LogoVisibilityOFF_Button; public Button PreviousLogoLeftButton; public Button NextLogoRightButton; public Button LogoPositionLeftButton; public Button LogoPositionRightButton; public Button ShowPlayeON; public Button ShowPlayerOFF; public Button ShowCompanionON; public Button ShowCompanionOFF; public Button PreviousFacePoseLeftButton; public Button NextFacePoseRightButton; public Button PreviousBodyPoseLeftButton; public Button NextBodyPoseRightButton; public Button PreviousOutfitLeftButton; public Button NextOutfitRightButton; [SerializeField] private Button QuitPhotomodeYesButton; [SerializeField] private Button QuitPhotomodeNoButton; [SerializeField] private Button ResetPhotographYesButton; [SerializeField] private Button ResetPhotographNoButton; [Header("Photomode Buttons Check")] public GameObject checkDepthOfFieldON; public GameObject checkDepthOfFieldOFF; public GameObject checkLogoVisibilityON; public GameObject checkLogoVisibilityOFF; public GameObject checkShowPlayerON; public GameObject checkShowPlayerOFF; public GameObject checkShowCompanionON; public GameObject checkShowCompanionOFF; [Header("Selected Item UI")] public GameObject _selectedItemUI_ColorFilters; public GameObject _selectedItemUI_Borders; //Eyes control buttons: public Button EyesControlON; public Button EyesControlOFF; //------------------------------------ public Button[] ColorFilter = new Button[9]; //private Button[] ColorFilter; public Button[] BorderButton = new Button[7]; #endregion [Header("UI Menu Controller Navigation")] [SerializeField] private UIMenuControllerNavigationPanel[] _uiMenuControllerNavigationPanel = new UIMenuControllerNavigationPanel[7]; int CurrentPanelIndex = 1; public int CurrentModeIndex; private Color defaultButtonColor; private Color selectedButtonColor; private static PhotomodeManager _instance; public static PhotomodeManager GetInstance() { return _instance; } void Awake() { if (!_instance) { _instance = this; } _PhotoModePanel.SetActive(false); freeCameraLogic = freeCamera.GetComponent(); #region Update Logo name UpdateLogoName(); #endregion postProcess = GameObject.FindGameObjectWithTag("VolumeEffectsMain").GetComponent(); postProcess.profile.TryGet(out liftGammaGain); photomodeVolumeEffectsDepthOfField.profile.TryGet(out depthOfField); photomodeVolumeBrightnessSaturation.profile.TryGet(out colorAdjustments); //postProcess.profile.TryGet(out shadowsMidtonesHighlights); if (eventSystem == null) { eventSystem = FindObjectOfType(); } } private void Start() { //Here I save the values that the game starts with. GainDefault = Gain; saturationDefault = saturation; exposureDefault = exposure; DepthOfFieldDistanceDefault = DepthOfFieldDistance; DepthOfFieldIntensityDefault = DepthOfFieldIntensity; logoScaleDefault = LogoScale; defaultButtonColor = new Color(255f, 255f, 255f, 255f); selectedButtonColor = new Color(255f, 121f, 243f, 255f); #region Buttons GetComponents Decleration //UIManager.GetInstance().ColorFilter[UIManager.GetInstance().ColorFilter.Length] CameraPanelButton = /*UIManager.GetInstance().CameraPanelButton.*/CameraPanelButton.gameObject.GetComponent