Вот сам скрипт:
Code
using UnityEngine;
using System.Collections;
public class PauseMenuScript : MonoBehaviour {
//ширина и высота бокса
private float boxWidth;
private float boxHeight;
//GUISkin
public GUISkin guiSkin;
//переменные для кнопок
private float buttonWidth;
private float buttonHeight = 10f;
private bool pauseMainMenuEnabled = true;
private bool pauseOptionsMenuEnabled = false;
//булевые переменные для переключателей res1 - 1024x768 res2 - 1280x1024 res3 - 1680x1050
private bool res1;
private bool res2;
private bool res3;
public Rect boxRect;
//слушатели звука
public AudioListener listner1;
public AudioListener listner2;
//переменная для слайдера
private float sliderFVolume;
void Start ()
{
//устанавливаем ширину и высоту бокса
boxHeight = Screen.height / 4;
boxWidth = Screen.width / 5;
//устанавливаем значения для кнопок
buttonWidth = Screen.width / 6;
boxRect = new Rect(100, 100, boxWidth, 125);
}
void PauseMainMenuBtn(int windowid)
{
if (GUILayout.Button("Resume"))
{
//выключаем курсор
Screen.lockCursor = true;
//возвращаем нормальную скорость времени
Time.timeScale = 1;
}
//включаем менюшку для опций
if (GUILayout.Button("Options"))
{
pauseOptionsMenuEnabled = true;
pauseMainMenuEnabled = false;
}
//назад в главное меню
if (GUILayout.Button("Back ot Main Menu"))
{
Application.LoadLevel("MainMenu");
}
}
void PauseOptionsMenuBtn(int windowid)
{
//переключатели разрешения
if (GUILayout.Toggle(res1, "1024x768"))
{
res1 = true;
}
if (GUILayout.Toggle(res2, "1280x1024"))
{
res2 = true;
}
if (GUILayout.Toggle(res3, "1680x1050"))
{
res3 = true;
}
//включаем разрешение
if (GUILayout.Button("Set Rexolution"))
{
if (res1 == true)
{
Screen.SetResolution(1024, 768, true);
}
if (res2 == true)
{
Screen.SetResolution(1280, 1024, true);
}
if (res3 == true)
{
Screen.SetResolution(1680, 150, true);
}
}
//регулируем звук
sliderFVolume = GUILayout.HorizontalSlider(sliderFVolume, 0.0f, 1.0f);
if (GUILayout.Button("Back"))
{
pauseMainMenuEnabled = true;
pauseOptionsMenuEnabled = false;
}
}
void OnGUI()
{
//включаем новый гуи скин
GUI.skin = guiSkin;
//если включен курсор включаем менюшку
if (Screen.lockCursor == false)
{
pauseMainMenuEnabled = true;
if(pauseMainMenuEnabled == true)
{
boxRect = GUILayout.Window(0, boxRect, PauseMainMenuBtn, "Pause Menu");
}
if (pauseOptionsMenuEnabled == true)
{
boxRect = GUILayout.Window(0, boxRect, PauseOptionsMenuBtn, "Options Menu");
}
}
}
void Update ()
{
//ставим паузу
if (Screen.lockCursor == false)
{
Time.timeScale = 0f;
}
//если выбрано одно разрешение - выключаем другие
if (res1 == true)
{
res2 = false;
res2 = false;
}
if (res2 == true)
{
res1 = false;
res3 = false;
}
if (res3 == true)
{
res1 = false;
res2 = false;
}
//блокировка курсора
if (Input.GetButtonUp("esc"))
{
if (Screen.lockCursor == true)
{
Screen.lockCursor = false;
}
else if (Screen.lockCursor == false)
{
Screen.lockCursor = true;
}
}
//выключаем все менюшки если курсор заблокирвоан
if (Screen.lockCursor == true)
{
pauseMainMenuEnabled = false;
pauseOptionsMenuEnabled = false;
}
listner1.audio.volume = sliderFVolume;
listner2.audio.volume = sliderFVolume;
}
}
Установка:
1. Создать Пустой ГО
2. Прицепить на него скрипт
Возможности:
Изменение разрешения и громкости звука.