using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class LightModeControllerManager : MonoBehaviour { [Header("Lightmode Buttons")] [Header("Select A Light")] [SerializeField] private Button light1On; [SerializeField] private Button light1Off; [SerializeField] private Button light2On; [SerializeField] private Button light2Off; [SerializeField] private Button light3On; [SerializeField] private Button light3Off; [Header("Edit Light")] [SerializeField] private Button selectedLightPrevious; [SerializeField] private Button selectedLightNext; [SerializeField] private Button castShadowsOn; [SerializeField] private Button castShadowsOff; [SerializeField] private Button previousLightType; [SerializeField] private Button nextLightType; private int editingLight; [Header("LightMode selected Item")] [HideInInspector] public List AllSelectedItemsFromLightMode; [SerializeField] private GameObject[] _selectedItemSelectALight = new GameObject[3]; [SerializeField] private GameObject[] _selectedItemEditLight = new GameObject[9]; [SerializeField] private GameObject[] _selectedItemEditNaturalLight = new GameObject[5]; [SerializeField] private int _selectALightVerticalSelectedItemIndex; [SerializeField] private int _editLightVerticalSelectedItemIndex; [SerializeField] private int _editLightVerticalSelectedItemIndexMax; private static LightModeControllerManager _instance; public static LightModeControllerManager GetInstance() { return _instance; } private void Awake() { if (!_instance) { _instance = this; } for (int i = 0; i < _selectedItemSelectALight.Length; i++) { AllSelectedItemsFromLightMode.Add(_selectedItemSelectALight[i]); } for (int i = 0; i < _selectedItemEditLight.Length; i++) { AllSelectedItemsFromLightMode.Add(_selectedItemEditLight[i]); } for (int i = 0; i < _selectedItemEditNaturalLight.Length; i++) { AllSelectedItemsFromLightMode.Add(_selectedItemEditNaturalLight[i]); } } #region Lightmode Controller navigation public void ControllerNavigation_SelectALight() { if (InputControlManager.Getinstance().IsUsingJoystick) { _editLightVerticalSelectedItemIndex = 0; InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemSelectALight, _selectALightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadNavigateVertical(ref _selectALightVerticalSelectedItemIndex, 2); switch (_selectALightVerticalSelectedItemIndex) { case 0: InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(light1On, light1Off); break; case 1: InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(light2On, light2Off); break; case 2: InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(light3On, light3Off); break; } } else { InputControlManager.Getinstance().SelectedMenuItemHideAll(ref _selectedItemSelectALight); } } public void ControllerNavigation_EditLight() { if (InputControlManager.Getinstance().IsUsingJoystick) { if (!LightModeManager.GetInstance().EditNaturalLight) { if (LightModeManager.GetInstance().EditLight1) { if (LightModeManager.GetInstance().lightIsActive[0]) { _editLightVerticalSelectedItemIndexMax = 8; } else { _editLightVerticalSelectedItemIndexMax = 0; } editingLight = 0; } else if (LightModeManager.GetInstance().EditLight2) { if (LightModeManager.GetInstance().lightIsActive[1]) { _editLightVerticalSelectedItemIndexMax = 8; } else { _editLightVerticalSelectedItemIndexMax = 0; } editingLight = 1; } else if (LightModeManager.GetInstance().EditLight3) { if (LightModeManager.GetInstance().lightIsActive[2]) { _editLightVerticalSelectedItemIndexMax = 8; } else { _editLightVerticalSelectedItemIndexMax = 0; } editingLight = 2; } else { _editLightVerticalSelectedItemIndexMax = 0; } InputControlManager.Getinstance().DpadNavigateVertical(ref _editLightVerticalSelectedItemIndex, _editLightVerticalSelectedItemIndexMax); switch (_editLightVerticalSelectedItemIndex) { case 0: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(selectedLightPrevious, selectedLightNext); break; case 1: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(previousLightType, nextLightType); break; case 2: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().lightIntensity, 0.4f); break; case 3: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(castShadowsOn, castShadowsOff); break; case 4: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().colorSlider, 0.02f); break; case 5: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().colorIntensitySlider, 0.06f); break; case 6: if (!LightModeManager.GetInstance().SpotLightIsActive[editingLight]) { if (InputControlManager.Getinstance().upDpadVerticalButton) { _editLightVerticalSelectedItemIndex = 5; } else { _editLightVerticalSelectedItemIndex = 8; } } else { InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().lightSpreadSlider, 0.07f); } break; case 7: if (!LightModeManager.GetInstance().SpotLightIsActive[editingLight]) { if (InputControlManager.Getinstance().upDpadVerticalButton) { _editLightVerticalSelectedItemIndex = 5; } else { _editLightVerticalSelectedItemIndex = 8; } } else { InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().spotlightSoftnessSlider, 2.5f); } break; case 8: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().lightDistanceSlider, 0.3f); break; } } else { InputControlManager.Getinstance().DpadNavigateVertical(ref _editLightVerticalSelectedItemIndex, _editLightVerticalSelectedItemIndexMax); _editLightVerticalSelectedItemIndexMax = 4; switch (_editLightVerticalSelectedItemIndex) { case 0: _selectedItemEditLight[0].SetActive(false); InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(selectedLightPrevious, selectedLightNext); break; case 1: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._intensity, 700f); break; case 2: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._elevation, 4f); break; case 3: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._rotation, 4f); break; case 4: InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex); InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._ambientLight, 0.5f); break; } } } else { InputControlManager.Getinstance().SelectedMenuItemHideAll(ref _selectedItemEditNaturalLight); } } #endregion }