using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class DebugMenu : MonoBehaviour { CameraAround _cameraAround; [Header("Input Options")] [SerializeField] float _xTouchValue; [SerializeField] TextMeshProUGUI _xTouchValueText; [SerializeField] Slider _xTouchSlider; [SerializeField] float _yTouchValue; [SerializeField] TextMeshProUGUI _yTouchValueText; [SerializeField] Slider _yTouchSlider; [SerializeField] float _xMouseValue; [SerializeField] TextMeshProUGUI _xMouseValueText; [SerializeField] Slider _xMouseSlider; [SerializeField] float _yMouseValue; [SerializeField] TextMeshProUGUI _yMouseValueText; [SerializeField] Slider _yMouseSlider; float _xTouchMin = 0f; float _xTouchMax = 0.32f; float _yTouchMin = 0f; float _yTouchMax = 0.16f; float _xMouseMin = 0f; float _xMouseMax = 5f; float _yMouseMin = 0f; float _yMouseMax = 1f; [Header("FPS Options")] [SerializeField] TextMeshProUGUI _fpsValueText; [SerializeField] Slider _fpsValueSlider; [SerializeField] TextMeshProUGUI _vSyncValueText; [SerializeField] Slider _vSyncValueSlider; int _minVSyncValue = 0; int _maxVSyncValue = 2; int _vSyncValue = 0; int _targetFPS = -1; int _fpsMin = -1; int _fpsMax = 350; [SerializeField] Toggle _resetToggle; [Header("Scene Mode Options")] [SerializeField] Toggle _toggleSceneModeToggle; void Start() { _cameraAround = Camera.main.GetComponent(); InitializeTouchInputOptions(); InitializeMouseInputOptions(); InitializeDisplaysOptions(); _toggleSceneModeToggle.isOn = SceneModeManager.Instance.ShowSceneModeText; } private void InitializeMouseInputOptions() { _xMouseMax = 5f; _yMouseMax = 1f; _xMouseValue = _xMouseMax; UpdateXMouseValue(_xMouseValue); _xMouseSlider.value = _xMouseValue; _xMouseSlider.minValue = _xMouseMin; _xMouseSlider.maxValue = _xMouseMax; _yMouseValue = _yMouseMax; UpdateYMouseValue(_yMouseValue); _yMouseSlider.value = _yMouseValue; _yMouseSlider.minValue = _yMouseMin; _yMouseSlider.maxValue = _yMouseMax; } private void InitializeDisplaysOptions() { _resetToggle.isOn = false; _targetFPS = Application.targetFrameRate; _fpsValueSlider.value = _targetFPS; _fpsValueText.text = _targetFPS.ToString(); _fpsValueSlider.minValue = _fpsMin; _fpsValueSlider.maxValue = _fpsMax; _vSyncValue = QualitySettings.vSyncCount; _vSyncValueSlider.value = _vSyncValue; _vSyncValueText.text = _vSyncValue.ToString(); _vSyncValueSlider.minValue = _minVSyncValue; _vSyncValueSlider.maxValue = _maxVSyncValue; } private void InitializeTouchInputOptions() { _xTouchMax = 0.32f; _yTouchMax = 0.16f; _xTouchValue = _xTouchMax; UpdateXTouchValue(_xTouchValue); _xTouchSlider.value = _xTouchValue; _xTouchSlider.minValue = _xTouchMin; _xTouchSlider.maxValue = _xTouchMax; _yTouchValue = _yTouchMax; UpdateYTouchValue(_yTouchValue); _yTouchSlider.value = _yTouchValue; _yTouchSlider.minValue = _yTouchMin; _yTouchSlider.maxValue = _yTouchMax; } public void UpdateXTouchValueSlider(float value) { UpdateXTouchValue(value); _cameraAround.TouchRotationAmountX = value; } public void UpdateXTouchValue(float value) { _xTouchValue = value; _xTouchValueText.text = value.ToString("0.00"); } public void UpdateYTouchValueSlider(float value) { UpdateYTouchValue(value); _cameraAround.TouchRotationAmountY = value; } public void UpdateYTouchValue(float value) { _yTouchValue = value; _yTouchValueText.text = value.ToString("0.00"); } public void UpdateXMouseValueSlider(float value) { UpdateXMouseValue(value); _cameraAround.RotationAmountX = value; } public void UpdateXMouseValue(float value) { _xMouseValue = value; _xMouseValueText.text = value.ToString("0.00"); } public void UpdateYMouseValueSlider(float value) { UpdateYMouseValue(value); _cameraAround.RotationAmountY = value; } public void UpdateYMouseValue(float value) { _yMouseValue = value; _yMouseValueText.text = value.ToString("0.00"); } #region Display Options public void UpdateDesiredFPS(float value) { int newValue = Mathf.Clamp((int)value, _fpsMin, _fpsMax); _targetFPS = newValue; Application.targetFrameRate = _targetFPS; _fpsValueText.text = _targetFPS.ToString(); } public void ChangeFPSValue(int value) { int newValue = Mathf.Clamp(_targetFPS + value, _fpsMin, _fpsMax); _targetFPS = newValue; Application.targetFrameRate = _targetFPS; _fpsValueSlider.value = _targetFPS; _fpsValueText.text = _targetFPS.ToString(); } public void UpdateDesiredVSync(float value) { int newValue = Mathf.Clamp((int)value, _minVSyncValue, _maxVSyncValue); _vSyncValue = newValue; QualitySettings.vSyncCount = _vSyncValue; _vSyncValueText.text = _vSyncValue.ToString(); } public void ChangeVsyncValue(int value) { int newValue = Mathf.Clamp(_vSyncValue + value, _minVSyncValue, _maxVSyncValue); _vSyncValue = newValue; QualitySettings.vSyncCount = _vSyncValue; _vSyncValueSlider.value = _vSyncValue; _vSyncValueText.text = _vSyncValue.ToString(); } public void ResetValue() { _resetToggle.isOn = false; _targetFPS = -1; _vSyncValue = 0; QualitySettings.vSyncCount = _vSyncValue; _vSyncValueSlider.value = _vSyncValue; _vSyncValueText.text = _vSyncValue.ToString(); Application.targetFrameRate = _targetFPS; _fpsValueSlider.value = _targetFPS; _fpsValueText.text = _targetFPS.ToString(); } #endregion public void ToggleSceneModeVisibility(bool value) { SceneModeManager.Instance.SetSceneModeVisibility(value); } }