110 lines
2.7 KiB
C#
110 lines
2.7 KiB
C#
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
using UnityEngine;
|
|
|
|
public class optionsMenu : MonoBehaviour
|
|
{
|
|
public static bool showMenu;
|
|
|
|
private string settings;
|
|
|
|
public static float ambianceLevel;
|
|
|
|
public static bool fullscreen;
|
|
|
|
public static string screenres = "1";
|
|
|
|
private string curRes = "1";
|
|
|
|
private void Start()
|
|
{
|
|
string[] array = Regex.Split(settings, "\r\n");
|
|
string[] array2 = array;
|
|
foreach (string input in array2)
|
|
{
|
|
string[] array3 = Regex.Split(input, "=");
|
|
if (array3[0] == "ambiance")
|
|
{
|
|
ambianceLevel = float.Parse(array3[1]);
|
|
}
|
|
else if (array3[0] == "fullscreen")
|
|
{
|
|
if (array3[1] == "True" || array3[1] == "true")
|
|
{
|
|
Screen.fullScreen = true;
|
|
fullscreen = true;
|
|
}
|
|
else
|
|
{
|
|
Screen.fullScreen = false;
|
|
}
|
|
}
|
|
else if (array3[0] == "screenresolution")
|
|
{
|
|
switch (array3[1])
|
|
{
|
|
case "1":
|
|
Screen.SetResolution(1366, 768, fullscreen);
|
|
break;
|
|
case "2":
|
|
Screen.SetResolution(1600, 900, fullscreen);
|
|
break;
|
|
}
|
|
screenres = array3[1];
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (curRes != screenres)
|
|
{
|
|
switch (screenres)
|
|
{
|
|
case "1":
|
|
Screen.SetResolution(1366, 768, fullscreen);
|
|
break;
|
|
case "2":
|
|
Screen.SetResolution(1600, 900, fullscreen);
|
|
break;
|
|
}
|
|
curRes = screenres;
|
|
}
|
|
if (Screen.fullScreen != fullscreen)
|
|
{
|
|
Screen.fullScreen = fullscreen;
|
|
}
|
|
}
|
|
|
|
public void OnGUI()
|
|
{
|
|
GUI.depth = 1000;
|
|
if (showMenu)
|
|
{
|
|
GUI.Box(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300f, 300f), string.Empty);
|
|
GUI.Label(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300f, 300f), "Sound");
|
|
GUI.Label(new Rect(Screen.width / 2 - 145, Screen.height / 2 - 130, 300f, 300f), "Ambience");
|
|
GUI.Label(new Rect(Screen.width / 2 + 115, Screen.height / 2 - 130, 300f, 300f), (int)(ambianceLevel * 100f) + "%");
|
|
ambianceLevel = GUI.HorizontalSlider(new Rect(Screen.width / 2 - 80, Screen.height / 2 - 125, 190f, 50f), ambianceLevel, 0f, 1f);
|
|
GUI.Label(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 100, 300f, 300f), "Graphics");
|
|
fullscreen = GUI.Toggle(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 80, 200f, 30f), fullscreen, "Fullscreen");
|
|
if (GUI.Button(new Rect(Screen.width / 2 - 60, Screen.height / 2 + 110, 120f, 30f), "Close"))
|
|
{
|
|
showMenu = false;
|
|
saveSettings();
|
|
}
|
|
}
|
|
GUI.depth = 0;
|
|
}
|
|
|
|
public static void saveSettings()
|
|
{
|
|
string text = "ambiance=" + (int)(ambianceLevel * 100f);
|
|
text = text + "\r\nfullscreen=" + fullscreen;
|
|
text = text + "\r\nscreenresolution=" + screenres;
|
|
StreamWriter streamWriter = new StreamWriter("settings.ini");
|
|
streamWriter.Write(text);
|
|
streamWriter.Close();
|
|
}
|
|
}
|