Скрипт меню-паузы
AIDEN Дата: Пн, 06 Май 2013, 09:00 | Сообщение # 1
Сообщений: 59
Награды:
0
Репутация:
56
Статус: Offline
Вот отличный скрипт для меню паузы.Просто создайте пустой обьект, и перекинте туда етот скрипт. Код
//ширина и высота бокса private var boxWidth : float; private var boxHeight : float; //GUISkin var Logotip : Texture2D; var guiSkin : GUISkin; //переменные для кнопок var buttonWidth : float; var buttonHeight : float; private var pauseMainMenuEnabled : boolean= true; private var pauseOptionsMenuEnabled : boolean= false; //булевые переменные для переключателей res1 - 1024x768 res2 - 1280x1024 res3 - 1680x1050 private var res1 : boolean; private var res2 : boolean; private var res3 : boolean; var boxRect : Rect; //слушатели звука var listner1 : AudioListener; var listner2 : AudioListener; //переменная для слайдера private var sliderFVolume : float; function Start () : void { //устанавливаем ширину и высоту бокса boxHeight = Screen.height / 30; boxWidth = Screen.width / 70; //устанавливаем значения для кнопок buttonWidth = Screen.width / 1; boxRect = new Rect(450, 30, 450, 350); } function PauseMainMenuBtn ( windowid : int ) : void { GUI.Label(new Rect(80, 220, 300, 68), Logotip); if(GUI.Button(new Rect(130, 80, 180, 40), " Продолжыть")) { //выключаем курсор Screen.lockCursor = true; //возвращаем нормальную скорость времени Time.timeScale = 1; } //включаем менюшку для опций if (GUILayout.Button("Настройки")) { pauseOptionsMenuEnabled = true; pauseMainMenuEnabled = false; } //назад в главное меню if(GUI.Button(new Rect(130, 150, 180, 40), "Меню")) { Application.LoadLevel(0); } } function PauseOptionsMenuBtn ( windowid : int ) : void { //переключатели разрешения if (GUILayout.Toggle(res1, "1024x768")) { res1 = true; } if (GUILayout.Toggle(res2, "1280x1024")) { res2 = true; } if (GUILayout.Toggle(res3, "1680x1050")) { res3 = true; } //включаем разрешение if (GUI.Button(new Rect(120, 150, 180, 40),"Применить")) { 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 (GUI.Button (new Rect(120, 210, 180, 40),"Назад")) { pauseMainMenuEnabled = true; pauseOptionsMenuEnabled = false; } } function OnGUI () : void { //включаем новый гуи скин GUI.skin = guiSkin; //если включен курсор включаем менюшку if (Screen.lockCursor == false) { pauseMainMenuEnabled = true; if(pauseMainMenuEnabled == true) { boxRect = GUILayout.Window(0, boxRect, PauseMainMenuBtn, "Пауза"); } if (pauseOptionsMenuEnabled == true) { boxRect = GUILayout.Window(0, boxRect, PauseOptionsMenuBtn, "Настройки"); } } } function Update () : void { //ставим паузу 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; }
Моя игра - Collect Fruit
Сообщение Вот отличный скрипт для меню паузы.Просто создайте пустой обьект, и перекинте туда етот скрипт. Код
//ширина и высота бокса private var boxWidth : float; private var boxHeight : float; //GUISkin var Logotip : Texture2D; var guiSkin : GUISkin; //переменные для кнопок var buttonWidth : float; var buttonHeight : float; private var pauseMainMenuEnabled : boolean= true; private var pauseOptionsMenuEnabled : boolean= false; //булевые переменные для переключателей res1 - 1024x768 res2 - 1280x1024 res3 - 1680x1050 private var res1 : boolean; private var res2 : boolean; private var res3 : boolean; var boxRect : Rect; //слушатели звука var listner1 : AudioListener; var listner2 : AudioListener; //переменная для слайдера private var sliderFVolume : float; function Start () : void { //устанавливаем ширину и высоту бокса boxHeight = Screen.height / 30; boxWidth = Screen.width / 70; //устанавливаем значения для кнопок buttonWidth = Screen.width / 1; boxRect = new Rect(450, 30, 450, 350); } function PauseMainMenuBtn ( windowid : int ) : void { GUI.Label(new Rect(80, 220, 300, 68), Logotip); if(GUI.Button(new Rect(130, 80, 180, 40), " Продолжыть")) { //выключаем курсор Screen.lockCursor = true; //возвращаем нормальную скорость времени Time.timeScale = 1; } //включаем менюшку для опций if (GUILayout.Button("Настройки")) { pauseOptionsMenuEnabled = true; pauseMainMenuEnabled = false; } //назад в главное меню if(GUI.Button(new Rect(130, 150, 180, 40), "Меню")) { Application.LoadLevel(0); } } function PauseOptionsMenuBtn ( windowid : int ) : void { //переключатели разрешения if (GUILayout.Toggle(res1, "1024x768")) { res1 = true; } if (GUILayout.Toggle(res2, "1280x1024")) { res2 = true; } if (GUILayout.Toggle(res3, "1680x1050")) { res3 = true; } //включаем разрешение if (GUI.Button(new Rect(120, 150, 180, 40),"Применить")) { 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 (GUI.Button (new Rect(120, 210, 180, 40),"Назад")) { pauseMainMenuEnabled = true; pauseOptionsMenuEnabled = false; } } function OnGUI () : void { //включаем новый гуи скин GUI.skin = guiSkin; //если включен курсор включаем менюшку if (Screen.lockCursor == false) { pauseMainMenuEnabled = true; if(pauseMainMenuEnabled == true) { boxRect = GUILayout.Window(0, boxRect, PauseMainMenuBtn, "Пауза"); } if (pauseOptionsMenuEnabled == true) { boxRect = GUILayout.Window(0, boxRect, PauseOptionsMenuBtn, "Настройки"); } } } function Update () : void { //ставим паузу 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; }
Автор - AIDEN Дата добавления - 06 Май 2013 в 09:00
игнат Дата: Пн, 06 Май 2013, 14:02 | Сообщение # 2
Сообщений: 706
Награды:
0
Репутация:
107
Статус: Offline
Хороший скрипт. Пригодится опытным новичкам.
Правила форума · участник GCC
Сообщение Хороший скрипт. Пригодится опытным новичкам. Автор - игнат Дата добавления - 06 Май 2013 в 14:02
seaman Дата: Пн, 06 Май 2013, 15:30 | Сообщение # 3
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Перед сменой разрешения желательно проверить поддерживается ли такое. Получаем Screen.resolutions, перебираем, ищем есть ли желаемое. Ну или сразу выводим для выбора все, которые вернуло Screen.resolutions.
Сообщение Перед сменой разрешения желательно проверить поддерживается ли такое. Получаем Screen.resolutions, перебираем, ищем есть ли желаемое. Ну или сразу выводим для выбора все, которые вернуло Screen.resolutions. Автор - seaman Дата добавления - 06 Май 2013 в 15:30
Maxik Дата: Вт, 14 Май 2013, 17:53 | Сообщение # 4
Сообщений: 23
Награды:
0
Репутация:
0
Статус: Offline
Цитата (seaman )
Получаем Screen.resolutions, перебираем, ищем есть ли желаемое.
У меня почему-то при получении Screen.resolutions выдаёт одно: 800х600. хотя на компе стоит 1280х1024. почему?
Сообщение Цитата (seaman )
Получаем Screen.resolutions, перебираем, ищем есть ли желаемое.
У меня почему-то при получении Screen.resolutions выдаёт одно: 800х600. хотя на компе стоит 1280х1024. почему?Автор - Maxik Дата добавления - 14 Май 2013 в 17:53
seaman Дата: Вт, 14 Май 2013, 19:10 | Сообщение # 5
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Ну как минимум должно выдать не "одно", а массив. Сколько в нем значений - бывает по разному. В редакторе вообще возвращает лажу. Проверяйте в игре.
Сообщение Ну как минимум должно выдать не "одно", а массив. Сколько в нем значений - бывает по разному. В редакторе вообще возвращает лажу. Проверяйте в игре. Автор - seaman Дата добавления - 14 Май 2013 в 19:10
Maxik Дата: Ср, 15 Май 2013, 16:48 | Сообщение # 6
Сообщений: 23
Награды:
0
Репутация:
0
Статус: Offline
Цитата (seaman )
Проверяйте в игре.
спасибо, помогло))
Сообщение Цитата (seaman )
Проверяйте в игре.
спасибо, помогло))Автор - Maxik Дата добавления - 15 Май 2013 в 16:48
AIDEN Дата: Пт, 02 Авг 2013, 23:20 | Сообщение # 7
Сообщений: 59
Награды:
0
Репутация:
56
Статус: Offline
Цитата (Неизвестен )
Когда я нажимаю кнопу "Продолжыть" ничего не происходит.В твоём скрипте 2 ошибки в слове "Продолжыть" и "заблокирвоан".
1. Возможность переключать разрешение, появляется только после компиляции игры 2. Этот скрипт не мой, как можно догадаться ошибки тоже не мои.
Моя игра - Collect Fruit
Сообщение Цитата (Неизвестен )
Когда я нажимаю кнопу "Продолжыть" ничего не происходит.В твоём скрипте 2 ошибки в слове "Продолжыть" и "заблокирвоан".
1. Возможность переключать разрешение, появляется только после компиляции игры 2. Этот скрипт не мой, как можно догадаться ошибки тоже не мои.Автор - AIDEN Дата добавления - 02 Авг 2013 в 23:20