using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using UnityEditor; using System.IO; namespace PaulosMenuController { public class GameMenuController : MonoBehaviour { [Header("Should the game pause when opening the menu ?")] [SerializeField] private bool pauseOnOpen = true; [Space(10)] [SerializeField] private GameObject mainCanvasObj; [SerializeField] private GameObject mainMenuPanelObj, optionsPanelObj, graphicsPanelObj, audioPanelObj; [SerializeField] private GameObject closeGameImageObj; private float previousTimescale; private bool menuOpen; // Use this for initialization void Awake() { DontDestroyOnLoad(gameObject); } private void Start() { mainCanvasObj.SetActive(false); graphicsPanelObj.SetActive(false); audioPanelObj.SetActive(false); optionsPanelObj.SetActive(false); mainMenuPanelObj.SetActive(true); closeGameImageObj.SetActive(false); } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { if (menuOpen) ButtonCloseMenu(); else ButtonOpenMenu(); } } public void ButtonOpenMenu() { if (pauseOnOpen) { previousTimescale = Time.timeScale;//getting the current timescale Time.timeScale = 0;//Pausing time } graphicsPanelObj.SetActive(false); audioPanelObj.SetActive(false); optionsPanelObj.SetActive(false); mainMenuPanelObj.SetActive(true); mainCanvasObj.SetActive(true); menuOpen = true; } public void ButtonCloseMenu() { if (pauseOnOpen) { Time.timeScale = previousTimescale;//unpausing time } mainCanvasObj.SetActive(false); graphicsPanelObj.SetActive(false); audioPanelObj.SetActive(false); optionsPanelObj.SetActive(false); mainMenuPanelObj.SetActive(true); menuOpen = false; } public void ButtonQuitGame() { closeGameImageObj.SetActive(true); Application.Quit(); } //for testing/Debugging. public void DeleteSavedSettings() { PlayerPrefs.DeleteKey("Qualitylevel"); PlayerPrefs.DeleteKey("ResolutionX"); PlayerPrefs.DeleteKey("ResolutionY"); PlayerPrefs.DeleteKey("antiAliasSlider"); PlayerPrefs.DeleteKey("RenderScale"); PlayerPrefs.DeleteKey("WindowedMode"); PlayerPrefs.DeleteKey("VSync"); PlayerPrefs.DeleteKey("AntiAliaslevel"); PlayerPrefs.DeleteKey("TextureQuality"); PlayerPrefs.DeleteKey("AnisotropicMode"); PlayerPrefs.DeleteKey("AnisotropicLevel"); PlayerPrefs.DeleteKey("muted"); PlayerPrefs.DeleteKey("mainVolume"); PlayerPrefs.DeleteKey("fxVolume"); PlayerPrefs.DeleteKey("musicVolume"); PlayerPrefs.DeleteKey("speakerMode"); } } }