Fur-War/Assets/Scripts/Menu/SettingsMenu.cs
Gerard Gascón 3b4c6e0ec6 init
2025-04-24 17:29:51 +02:00

80 lines
2.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using UnityEngine.UI;
using TMPro;
public class SettingsMenu : MonoBehaviour{
[SerializeField] GameObject startButton;
[SerializeField] GameObject[] mainMenu;
[Space]
[SerializeField] TMP_Dropdown resolutionDropdown = default;
Resolution[] resolutions;
int currentResolutionIndex;
void Awake(){
foreach(GameObject o in mainMenu){
o.SetActive(false);
}
if(resolutionDropdown != null){
resolutions = Screen.resolutions.Select(resolution => new Resolution { width = resolution.width, height = resolution.height }).Distinct().ToArray();
resolutionDropdown.ClearOptions();
List<string> options = new List<string>();
for (int i = 0; i < resolutions.Length; i++){
string option = resolutions[i].width + "x" + resolutions[i].height;
options.Add(option);
if (resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height){
currentResolutionIndex = i;
}
}
resolutions.Reverse();
resolutionDropdown.AddOptions(options);
resolutionDropdown.value = currentResolutionIndex;
resolutionDropdown.RefreshShownValue();
}
}
bool started;
void Update(){
if (Input.anyKeyDown && !started){
AudioManager.instance.PlayOneShot("Start");
AudioManager.instance.Play("Menu");
startButton.SetActive(false);
foreach(GameObject o in mainMenu){
o.SetActive(true);
}
started = true;
}
}
public void SetQuality(int qualityIndex){
QualitySettings.SetQualityLevel(qualityIndex);
}
public void SetResolution(int resolutionIndex){
Resolution resolution = resolutions[resolutionIndex];
Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
}
public void Play(){
if (PlayerPrefs.HasKey("Tutorial")){
LevelLoader.instance.LoadScene(2);
}else{
LevelLoader.instance.LoadScene(1);
}
AudioManager.instance.PlayOneShot("Play");
}
public void Quit(){
Application.Quit();
}
}