73 lines
2.0 KiB
C#
73 lines
2.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Audio;
|
|
using TMPro;
|
|
|
|
public class SettingsMenu : MonoBehaviour
|
|
{
|
|
public AudioMixer audioMixer;
|
|
|
|
public TMP_Dropdown qualityDropdown;
|
|
public TMP_Dropdown resolutionDropdown;
|
|
|
|
Resolution[] resolutions;
|
|
|
|
void Start()
|
|
{
|
|
resolutions = Screen.resolutions;
|
|
|
|
resolutionDropdown.ClearOptions();
|
|
qualityDropdown.ClearOptions();
|
|
|
|
List<string> resolutionOptions = new List<string>();
|
|
List<string> qualityOptions = new List<string>();
|
|
|
|
int currentResolutionIndex = 0;
|
|
|
|
for (int i = 0; i < resolutions.Length; i++)
|
|
{
|
|
string resolutionOption = resolutions[i].width + " x " + resolutions[i].height;
|
|
resolutionOptions.Add(resolutionOption);
|
|
|
|
if (resolutions[i].width == Screen.currentResolution.width &&
|
|
resolutions[i].height == Screen.currentResolution.height)
|
|
{
|
|
currentResolutionIndex = i;
|
|
}
|
|
}
|
|
|
|
resolutionDropdown.AddOptions(resolutionOptions);
|
|
resolutionDropdown.value = currentResolutionIndex;
|
|
resolutionDropdown.RefreshShownValue();
|
|
|
|
for (int i = 0; i < QualitySettings.names.Length; i++)
|
|
{
|
|
qualityOptions.Add(QualitySettings.names[i]);
|
|
}
|
|
|
|
qualityDropdown.AddOptions(qualityOptions);
|
|
}
|
|
|
|
public void SetResolution(int resolutionIndex)
|
|
{
|
|
Resolution resolution = resolutions[resolutionIndex];
|
|
Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
|
|
}
|
|
|
|
public void SetVolume(float volume)
|
|
{
|
|
audioMixer.SetFloat("Volume", volume);
|
|
}
|
|
|
|
public void SetQuality(int qualityIndex)
|
|
{
|
|
QualitySettings.SetQualityLevel(qualityIndex);
|
|
}
|
|
|
|
public void SetFullscreen(bool isFullscreen)
|
|
{
|
|
Screen.fullScreen = isFullscreen;
|
|
}
|
|
}
|