Простое GUI меню.
commandoby Дата: Пт, 28 Сен 2012, 19:55 | Сообщение # 41
Unity 3D Free
Сообщений: 836
Награды:
3
Репутация:
211
Статус: Offline
Code
var screenBoolean = true; var soundFloat = 1.0; function OnGUI () { audio.volume = soundFloat; //применяем громкость if (GUI.Button (Rect (5,5,180,30), "800x600")) { Screen.SetResolution (800, 600, screenBoolean); } //применяем разрешение экрана screenBoolean = GUI.Toggle (Rect (5, 40, 180, 20), screenBoolean, "На весь экран"); //изменяем переменную soundFloat = GUI.HorizontalSlider (Rect (5,65, 180, 20), soundFloat, 0,0, 1,0); //ползунок, регулирующий громкость }
Примерно так я сделал у себя. Возможны ошибки (писал в браузере).
Блог.
Сообщение Code
var screenBoolean = true; var soundFloat = 1.0; function OnGUI () { audio.volume = soundFloat; //применяем громкость if (GUI.Button (Rect (5,5,180,30), "800x600")) { Screen.SetResolution (800, 600, screenBoolean); } //применяем разрешение экрана screenBoolean = GUI.Toggle (Rect (5, 40, 180, 20), screenBoolean, "На весь экран"); //изменяем переменную soundFloat = GUI.HorizontalSlider (Rect (5,65, 180, 20), soundFloat, 0,0, 1,0); //ползунок, регулирующий громкость }
Примерно так я сделал у себя. Возможны ошибки (писал в браузере).Автор - commandoby Дата добавления - 28 Сен 2012 в 19:55
alexchromets Дата: Пт, 28 Сен 2012, 20:20 | Сообщение # 42
Сообщений: 4
Награды:
0
Репутация:
0
Статус: Offline
commandoby , не работает ничего. Попробовал закинуть код с ползунком - ошибку выбивает: Assets/scriptScreenMainMenu.js(48,51): BCE0023: No appropriate version of 'UnityEngine.GUI.HorizontalSlider' for the argument list '(UnityEngine.Rect, float, int, int, int, int)' was found.
Code
// Main Menu Script var window = 0; var myFont : Font; var style : GUIStyle; var toggle = false; //тумблер var sider : int = 0; // горизонтальный ползунок static var resolutions : Resolution[]; var soundFloat : float = 1.0; // function Start() { Screen.SetResolution (800, 600, false); }; function OnGUI () { audio.volume = soundFloat; //применяем громкость if (Input.GetKey("f1")) { window = 2; } GUI.skin.font = myFont; if (window == 0) // теперь главное меню активировано при window = 0 { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "ГЛАВНОЕ МЕНЮ"); if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 80,180,30), "Играть")) { Application.LoadLevel ("sceneLevel1"); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 40,180,30), "Настройки")) { window = 1; // активируем окно "настройки" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 0,180,30), "Помощь")) { window = 2; // активируем окно "помощь" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Выход")) { Application.Quit(); } } if (window == 1) // наши настройки { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Настройки"); //sider = GUI.HorizontalSlider (Rect (Screen.width/2 - 90,Screen.height/2 - 40, 180, 20), sider, 0, 160); //горизонтальный soundFloat = GUI.HorizontalSlider (Rect (Screen.width/2 - 90,Screen.height/2 - 40, 180, 20), soundFloat, 0,0, 1,0); //ползунок, регулирующий громкость //GUI.Box (Rect (Screen.width/2 - 130 - sider,Screen.height/2 - 100,20 + sider,20 + sider1), ""); toggle = GUI.Toggle (Rect (Screen.width/2 - 90,Screen.height/2 - 70, 180, 20), toggle, "На весь экран"); if (toggle == true) { var resolutions : Resolution[] = Screen.resolutions; // Switch to the lowest supported fullscreen resolution Screen.SetResolution (resolutions[0].width, resolutions[0].height, true); } else { Screen.SetResolution (800, 600, false); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } if (window == 2) // наша помощь { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Помощь"); GUI.Label (Rect (Screen.width/2 - 100,Screen.height/2 - 80,200,140), "Здесь должна быть помощь ", style); // текст if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } }
Сообщение отредактировал alexchromets - Пт, 28 Сен 2012, 21:03
Сообщение commandoby , не работает ничего. Попробовал закинуть код с ползунком - ошибку выбивает: Assets/scriptScreenMainMenu.js(48,51): BCE0023: No appropriate version of 'UnityEngine.GUI.HorizontalSlider' for the argument list '(UnityEngine.Rect, float, int, int, int, int)' was found.
Code
// Main Menu Script var window = 0; var myFont : Font; var style : GUIStyle; var toggle = false; //тумблер var sider : int = 0; // горизонтальный ползунок static var resolutions : Resolution[]; var soundFloat : float = 1.0; // function Start() { Screen.SetResolution (800, 600, false); }; function OnGUI () { audio.volume = soundFloat; //применяем громкость if (Input.GetKey("f1")) { window = 2; } GUI.skin.font = myFont; if (window == 0) // теперь главное меню активировано при window = 0 { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "ГЛАВНОЕ МЕНЮ"); if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 80,180,30), "Играть")) { Application.LoadLevel ("sceneLevel1"); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 40,180,30), "Настройки")) { window = 1; // активируем окно "настройки" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 0,180,30), "Помощь")) { window = 2; // активируем окно "помощь" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Выход")) { Application.Quit(); } } if (window == 1) // наши настройки { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Настройки"); //sider = GUI.HorizontalSlider (Rect (Screen.width/2 - 90,Screen.height/2 - 40, 180, 20), sider, 0, 160); //горизонтальный soundFloat = GUI.HorizontalSlider (Rect (Screen.width/2 - 90,Screen.height/2 - 40, 180, 20), soundFloat, 0,0, 1,0); //ползунок, регулирующий громкость //GUI.Box (Rect (Screen.width/2 - 130 - sider,Screen.height/2 - 100,20 + sider,20 + sider1), ""); toggle = GUI.Toggle (Rect (Screen.width/2 - 90,Screen.height/2 - 70, 180, 20), toggle, "На весь экран"); if (toggle == true) { var resolutions : Resolution[] = Screen.resolutions; // Switch to the lowest supported fullscreen resolution Screen.SetResolution (resolutions[0].width, resolutions[0].height, true); } else { Screen.SetResolution (800, 600, false); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } if (window == 2) // наша помощь { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Помощь"); GUI.Label (Rect (Screen.width/2 - 100,Screen.height/2 - 80,200,140), "Здесь должна быть помощь ", style); // текст if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } }
Автор - alexchromets Дата добавления - 28 Сен 2012 в 20:20
commandoby Дата: Пт, 28 Сен 2012, 20:47 | Сообщение # 43
Unity 3D Free
Сообщений: 836
Награды:
3
Репутация:
211
Статус: Offline
alexchromets , поменяй Code
soundFloat = GUI.HorizontalSlider (Rect (5,65, 180, 20), soundFloat, 0.0, 1.0); //ползунок, регулирующий громкость
Добавлено (28.09.2012, 20:47) ---------------------------------------------alexchromets , красный цвет запрещён!
Блог.
Сообщение отредактировал commandoby - Пт, 28 Сен 2012, 20:47
Сообщение alexchromets , поменяй Code
soundFloat = GUI.HorizontalSlider (Rect (5,65, 180, 20), soundFloat, 0.0, 1.0); //ползунок, регулирующий громкость
Добавлено (28.09.2012, 20:47) ---------------------------------------------alexchromets , красный цвет запрещён!
Автор - commandoby Дата добавления - 28 Сен 2012 в 20:47
alexchromets Дата: Пт, 28 Сен 2012, 21:29 | Сообщение # 44
Сообщений: 4
Награды:
0
Репутация:
0
Статус: Offline
commandoby , аудио заработало, спасибо! Только что с видео делать? Покопался с видео, когда захожу в "Настройки" и нажимаю на "На весь экран", то оно на весь экран становится и моргает, пока из этого подменю не выйду, дальше все работает нормально, но когда захожу туда опять(в настройки) - тумблер сам становится в положение "выкл." и фулскрин, соответственно, отключается. Как этом ожно исправить?
Code
// Main Menu Script var window = 0; var myFont : Font; var style : GUIStyle; var toggle = false; //тумблер static var soundFloat : float = 1.0; // function OnGUI () { AudioListener.volume = soundFloat; //применяем громкость if (Input.GetKey("f1")) { window = 2; } GUI.skin.font = myFont; if (window == 0) // теперь главное меню активировано при window = 0 { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "ГЛАВНОЕ МЕНЮ"); if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 80,180,30), "Играть")) { Application.LoadLevel ("sceneLevel1"); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 40,180,30), "Настройки")) { window = 1; // активируем окно "настройки" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 0,180,30), "Помощь")) { window = 2; // активируем окно "помощь" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Выход")) { Application.Quit(); } } if (window == 1) // наши настройки { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Настройки"); GUI.Label (Rect (Screen.width/2 - 90,Screen.height/2 - 70, 180, 20), "Громкость музыки:"); soundFloat = GUI.HorizontalSlider (Rect (Screen.width/2 - 90,Screen.height/2 - 50, 180, 20), soundFloat, 0.0, 1.0); //ползунок, регулирующий громкость toggle = GUI.Toggle (Rect (Screen.width/2 - 90,Screen.height/2 - 20, 180, 20), toggle, "На весь экран"); if (toggle == true) { Screen.SetResolution(Screen.currentResolution.width, Screen.currentResolution.height, true); } else { Screen.SetResolution(800, 600, false); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } if (window == 2) // наша помощь { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Помощь"); GUI.Label (Rect (Screen.width/2 - 100,Screen.height/2 - 80,200,140), "Здесь должна быть помощь ", style); // текст if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } }
Сообщение отредактировал alexchromets - Пн, 01 Окт 2012, 01:57
Сообщение commandoby , аудио заработало, спасибо! Только что с видео делать? Покопался с видео, когда захожу в "Настройки" и нажимаю на "На весь экран", то оно на весь экран становится и моргает, пока из этого подменю не выйду, дальше все работает нормально, но когда захожу туда опять(в настройки) - тумблер сам становится в положение "выкл." и фулскрин, соответственно, отключается. Как этом ожно исправить?
Code
// Main Menu Script var window = 0; var myFont : Font; var style : GUIStyle; var toggle = false; //тумблер static var soundFloat : float = 1.0; // function OnGUI () { AudioListener.volume = soundFloat; //применяем громкость if (Input.GetKey("f1")) { window = 2; } GUI.skin.font = myFont; if (window == 0) // теперь главное меню активировано при window = 0 { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "ГЛАВНОЕ МЕНЮ"); if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 80,180,30), "Играть")) { Application.LoadLevel ("sceneLevel1"); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 40,180,30), "Настройки")) { window = 1; // активируем окно "настройки" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 - 0,180,30), "Помощь")) { window = 2; // активируем окно "помощь" } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Выход")) { Application.Quit(); } } if (window == 1) // наши настройки { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Настройки"); GUI.Label (Rect (Screen.width/2 - 90,Screen.height/2 - 70, 180, 20), "Громкость музыки:"); soundFloat = GUI.HorizontalSlider (Rect (Screen.width/2 - 90,Screen.height/2 - 50, 180, 20), soundFloat, 0.0, 1.0); //ползунок, регулирующий громкость toggle = GUI.Toggle (Rect (Screen.width/2 - 90,Screen.height/2 - 20, 180, 20), toggle, "На весь экран"); if (toggle == true) { Screen.SetResolution(Screen.currentResolution.width, Screen.currentResolution.height, true); } else { Screen.SetResolution(800, 600, false); } if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } if (window == 2) // наша помощь { GUI.Box (Rect (Screen.width/2 - 100,Screen.height/2 - 100,200,180), "Помощь"); GUI.Label (Rect (Screen.width/2 - 100,Screen.height/2 - 80,200,140), "Здесь должна быть помощь ", style); // текст if (GUI.Button (Rect (Screen.width/2 - 90,Screen.height/2 + 40,180,30), "Назад") || Input.GetKey ("escape")) { window = 0; } } }
Автор - alexchromets Дата добавления - 28 Сен 2012 в 21:29
egor152 Дата: Чт, 25 Окт 2012, 23:48 | Сообщение # 45
Сообщений: 3
Награды:
0
Репутация:
0
Статус: Offline
выложите пожалуйста целый скрипт а то у меня какие то проблемы
Сообщение выложите пожалуйста целый скрипт а то у меня какие то проблемы Автор - egor152 Дата добавления - 25 Окт 2012 в 23:48
ashot228 Дата: Пн, 09 Дек 2013, 21:59 | Сообщение # 46
Сообщений: 1
Награды:
0
Репутация:
0
Статус: Offline
Всем привет. Делал все по инструкции - после перехода на другую сцену меню не убирается( Так и остается висеть на экране. Подскажите пожалуйста как его убрать...
Сообщение Всем привет. Делал все по инструкции - после перехода на другую сцену меню не убирается( Так и остается висеть на экране. Подскажите пожалуйста как его убрать... Автор - ashot228 Дата добавления - 09 Дек 2013 в 21:59
игнат Дата: Пн, 09 Дек 2013, 22:33 | Сообщение # 47
Сообщений: 706
Награды:
0
Репутация:
107
Статус: Offline
ashot228 , это можно сделать разными путями. Можно написать, что скрипт DontDestroyOnLoad (если меню паузы, если нет - то это было необязательно), и сделать bool переменную, которая будет вкл\отк скрипт, если нажата кнопка "играть".
Правила форума · участник GCC
Сообщение ashot228 , это можно сделать разными путями. Можно написать, что скрипт DontDestroyOnLoad (если меню паузы, если нет - то это было необязательно), и сделать bool переменную, которая будет вкл\отк скрипт, если нажата кнопка "играть".Автор - игнат Дата добавления - 09 Дек 2013 в 22:33
kolan123 Дата: Пт, 03 Янв 2014, 23:22 | Сообщение # 48
Сообщений: 11
Награды:
0
Репутация:
0
Статус: Offline
а какая функция отвечает за разрешение экрана ?
Сообщение а какая функция отвечает за разрешение экрана ? Автор - kolan123 Дата добавления - 03 Янв 2014 в 23:22
Левша Дата: Сб, 04 Янв 2014, 00:28 | Сообщение # 49
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Screen.Resolution
X.cor.R (Prologue)
Сообщение Screen.Resolution Автор - Левша Дата добавления - 04 Янв 2014 в 00:28