Программирование Динамичного GUI

Программирование на Юнити.

Программирование Динамичного GUI

Сообщение Duke 08 дек 2010, 13:35

Всем добрый день.
С юнити недавно и постоянно сталкиваюсь с вроде совсем небольшими, но все таки проблемами, которые, наверняка, просто решить людям уже разобравшимся.

В мануале и туториалах искал способ кликом по одному элементу GUI вызывать и прятать другой. Куча примеров, как спавнить объект, загружать уровень и тп.... пытался делать как BootCamp Demo, но видимо что-то упустил.

Вопрос, что изменить, что бы работало?

Синтаксис:
Используется javascript
enum MainMenuState
{
        IDLE,
        WEB,
        SHIPS,
        GUNS,
        CONFIGS,
        QUIT,
}

class ManeButtons extends MonoBehaviour{

                static var visible : boolean;
                var explosion : Transform;
                var toolbarInt : int = 0;
                var toolbarStrings : String[] = ["Toolbar1", "Toolbar2", "Toolbar3"];
               
                function Start()
                {
                        state = MainMenuState.IDLE;
                }

                function OnGUI(){
                                var evt : Event = Event.current;
                               
                                DrawGUI(evt);
                }

                function DrawGUI (event : Event) {

                        if(visible){
                                if (GUI.Button (Rect (156,10,50,50), "Ships")) {
                                        state = MainMenuState.SHIPS;
                                        //Like this :
                                        DrawShips ();
                                }
                        }
                        //Or like this...
                        if(state == MainMenuState.SHIPS){
                                        DrawShips ();
                        }
                       
                       
                }

                private var aboutScroll : Vector2;
                private var aboutStyle : GUIStyle;
       
                function DrawShips (){
                                Debug.Log("We are in DrawShips!");
                       
                                GUILayout.BeginArea (Rect (200,200,400,100));
                                aboutScroll = GUILayout.BeginScrollView(aboutScroll, GUILayout.Width(400));
                               
                                //and some gui elements here...
                               
                                GUILayout.EndScrollView();
                               
                                GUILayout.EndArea();

                               

                }

                function DrawGuns (){

                }
}


Я попадаю в функцию DrawShips, но элементы GUI там находящиеся не отображаются по нажатию на кнопку.
Задача тривиальная - по нажатию на button показывать и скрывать область\окно с элементами интерфейса.
Спасибо.
-My Art -
Duke
UNец
 
Сообщения: 8
Зарегистрирован: 08 дек 2010, 13:12

Re: Программирование Динамичного GUI

Сообщение eric 08 дек 2010, 13:53

Для использования одной кнопки используйте конструкцию show=!show;
Кнопка с этим действием помещается в OnGUI - ниже идет проверка if(show) и показывается соотвествующее GUI.Window
eric
UNец
 
Сообщения: 38
Зарегистрирован: 12 июн 2010, 12:35

Re: Программирование Динамичного GUI

Сообщение Zaicheg 08 дек 2010, 13:54

Задача тривиальная - по нажатию на button показывать и скрывать область\окно с элементами интерфейса.

Синтаксис:
Используется csharp
bool showWindow = false;
Rect rectWindow = new Rect (0, 50, 100, 100);

void OnGUI() {
if (GUI.Button(new Rect(0, 0, 100, 20), "Show Window"))
showWindow = !showWindow;

if (showWindow)
rectWindow = GUI.Window(0, rectWindow, WindowA, ""); }

void WindowA(int windowID) { }
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Программирование Динамичного GUI

Сообщение Duke 09 дек 2010, 00:40

Zaicheg, eric большое спасибо. С этим разобрался.
-My Art -
Duke
UNец
 
Сообщения: 8
Зарегистрирован: 08 дек 2010, 13:12


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2