Files
Fishing2/Assets/@PaulosCreations/AudioVideoOptionsMenu/Scripts_Shared/GameMenuController.cs
2025-05-29 18:03:24 +08:00

120 lines
3.4 KiB
C#

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");
}
}
}