120 lines
3.4 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|