Проблема в реализации меню
|
|
Georgiy0912 | Дата: Понедельник, 09 Сентября 2013, 15:41 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Привет всем. Мой вопрос прост: Как сделать плавный переход между разделами в главном меню? Хочется, что бы менюшки не просто пропадали и появлялись, а как нибудь "уезжали" в сторону при переходе... Структура кода у меня такая: Код public string currentMenu = Main;
void OnGUI() { if(currentMenu = "Main") MainMenu(); if(currentMenu = "Settings") SettingsMenu(); }
//Функция меняющая разделы void ChangeMenu(string nextMenu) { currentMenu = nextMenu; }
//Главный раздел главного меню void MainMenu() { //Переход в раздел настроек if(GUI.Button(new Rect(10,10,100,30), "Настройки")) ChangeMenu("Settings"); }
//Раздел настроек главного меню void SettingsMenu() { //Назад в главный раздел if(GUI.Button(new Rect(10,10,100,30), "Назад")) ChangeMenu("Main"); }
Подумывал сделать все в 3д пространстве, но потом вспомнил, что в оригинале есть текстовые поля, так, что сделать это в 3д будет весьма проблематично. Настоящий код у меня конечно гораздо сложнее, но суть та же. Жду ответов.
Сообщение отредактировал Georgiy0912 - Понедельник, 09 Сентября 2013, 16:02 |
|
| |
robertono | Дата: Понедельник, 09 Сентября 2013, 17:01 | Сообщение # 2 |
Чокнутый Кот
Сейчас нет на сайте
| Georgiy0912, я бы подождал новый Unity и uGUI. Там это будет в два клика) А насчет вашей проблемы : можно например с помощью Time.deltaTime через цикл for сдвигать каждую секунду на сколько то.
|
|
| |
Georgiy0912 | Дата: Понедельник, 09 Сентября 2013, 17:21 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| robertono, про uGUI первый раз слышу) Если я правильно понял, надо создать переменную, равную 0, и суммировать её с X кардинатами всех GUI элементов, а во время перехода увеличивать это переменную Mathf.SmoothDamp'ом. Попробую. Посмотрим какие дальше будут ответы. Спасибо.
|
|
| |
JHawk | Дата: Понедельник, 09 Сентября 2013, 18:17 | Сообщение # 4 |
めゃくちゃちゃ
Сейчас нет на сайте
| Georgiy0912, я бы порекомендовал тебе сделать "Матеръяльное" меню. Вот пример Сам с помощью него столько всего понаделал..... Аж вспоминать страшно)Добавлено (09.09.2013, 18:17) --------------------------------------------- А если хочеться сделать именно через GUI, то бери способ описанный robertono.
|
|
| |
Georgiy0912 | Дата: Понедельник, 09 Сентября 2013, 18:57 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| JHawk, а как в материальном меню сделать текстовые поля? Буду, как сказал robertono
|
|
| |
|
Georgiy0912 | Дата: Понедельник, 09 Сентября 2013, 21:26 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| robertono, забыл, ок
|
|
| |
robertono | Дата: Понедельник, 09 Сентября 2013, 22:19 | Сообщение # 8 |
Чокнутый Кот
Сейчас нет на сайте
| Georgiy0912, удачи в разработке
|
|
| |
lentinant | Дата: Понедельник, 09 Сентября 2013, 22:23 | Сообщение # 9 |
ленивый программист
Сейчас нет на сайте
| Можно написать собственный шейдер, которые будет выводить поверх текстуры указанный текст.
А вообще, разве у Unity не было поддержки ScaleForm?
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
robertono | Дата: Понедельник, 09 Сентября 2013, 23:03 | Сообщение # 10 |
Чокнутый Кот
Сейчас нет на сайте
| Цитата (lentinant) Можно написать собственный шейдер, которые будет выводить поверх текстуры указанный текст. это точно не по уровню ТС
|
|
| |
Skmaestro | Дата: Понедельник, 09 Сентября 2013, 23:51 | Сообщение # 11 |
участник
Сейчас нет на сайте
| хэх, оч. легко, какие шейдеры о чем вы ребят тут работы на 0.1-0.2 м Код var s : Vector2; if(GUI.Button(new Rect(10,10,s.x,s.y), "Настройки")) {CLICKED();}
function CLICKED() { var speed: int; var double_speed : int; var count : int; var count2 : int = 100; for(var i=0;i<=speed;i++) { count+=1; if(count<=count2) { count=0; s.x-=double_speed; }}} Если хочешь можешь вместо этого всего Код for(var i=0;i<=60;i++) { yield WaitForSeconds(1.0); s.x-=(Screen.width/60)+Button_Size } Я писал не в редакторе, так что строго не судить-) помог плюсани пож репа нада)
Помог поставь + Проект DeadWorldZ пока заморожен иными словами разрабатывается скрытно Skype: Skmaestro867
Сообщение отредактировал Skmaestro - Понедельник, 09 Сентября 2013, 23:53 |
|
| |