Пятница, 19 Апреля 2024, 21:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Gui.Window (1)
Gui.Window
Valik_FenkoДата: Четверг, 21 Января 2016, 22:20 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Проблема такая возникла
у меня есть функция BagMenu(int i)
и переменная i используется в теле функции(оч важная часть)
и проблема заключается в вызове окна этой функции.
BagMenu(int); можно написать так и это будет работать,но как тогда нарисовать окно,ведь так его не будет..
Я так понял i -ид функции ,но это нифига не так.У меня не пашет даже если я пишу конкретное число,а не переменную.Внутри функции BagMenu Gui.box'ы есть, они не отображаются ваще


Сообщение отредактировал Valik_Fenko - Пятница, 22 Января 2016, 16:05
BUFFOMETZДата: Пятница, 22 Января 2016, 21:26 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Код
private void Start () {
    int window = 3;
    BagMenu(window);
}
    
private void BagMenu(int i) {
    int win = i;
    if(win == 1);
    if(win == 2);
    if(win == 3); //При старте сработает это условие.
    if(win == 4);
}
Valik_FenkoДата: Пятница, 22 Января 2016, 21:43 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Мне нид чтоб когда я вызываю окно(GUI.Window) я мог задать нужное мне значение i,а не при старте.Это и так понятно что ты скинул.Но мне же не просто функцию вызвать надо,а окно.Эт я не особо понятно объяснил так что вот

GUI.Window(id,rect,BagMenu,"");

И мне нид чтоб переменная i указывалась мною.
Если написал вот так
BagMenu(i);
и отдельно окно,то все окно будет поверх боксов.Не важно в каком порядке писать.Если кинуть окно в BagMenu то боксов просто не будет,будет ток окно

Добавлено (22 января 2016, 21:43)
---------------------------------------------
BUFFOMETZ, Прочитаешь?

Сообщение отредактировал Valik_Fenko - Пятница, 22 Января 2016, 21:38
BUFFOMETZДата: Пятница, 22 Января 2016, 22:31 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Цитата
И мне нид чтоб переменная i указывалась мною.

меняй переменную window

Цитата
у меня есть функция BagMenu(int i)
и переменная i используется в теле функции(оч важная часть)

так i и будет меняться в зависимости от переменной window.
Код
int window = 3;

public void WindowChange(int i) { // указываешь любое желаемое значение откуда захочешь, хоть из другого скрипта.
        window = i;
}

private void OnGUI() {
    rect = GUI.Window(window, rect, BagMenu, "");
}
  
private void BagMenu(int i) { //твоя функция с переменной i которую ты указал
    int win = i; //переменная i которая должна использоваться в теле функции, чтобы изменить вызови WindowChange
    if(win == 1);
    if(win == 2);
    if(win == 3); //твоя оч важная часть. Пока не вызовешь WindowChange, будет равна 3.
    if(win == 4);
}


Я не очень помню легаси ui, но все должно работать. Может все таки я тебя не понял, лучше скинь весь скрипт, и поясни что конкретно тебе нужно и что не получается.


Сообщение отредактировал BUFFOMETZ - Пятница, 22 Января 2016, 22:33
Valik_FenkoДата: Пятница, 22 Января 2016, 23:16 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Тот код что ты скинул не работает
if(win == 3); //твоя оч важная часть. Пока не вызовешь WindowChange, будет равна 3.
вот так сказать эта часть не вызывается.У меня там проверок i нету,сделал как ты..Хотя смысл?
Можно же сразу //указать любое желаемое значение откуда захочешь, хоть из другого скрипта.

rect = GUI.Window(тут, rect, BagMenu, "");

не работает и всё я хз почему.На то что внутри функции даже не думай грешить.Если написать просто BagMenu(int);,то всё отображается,ну правда без окна

Помоему ID при создании окна и int в функции окна ваще никак не взаимосвязаны..

На BagMenu грешить не стоит ибо проверен код.Если просто написать BagMenu(Название скрипта.Название массива[переменная цикла]); Всё работает как часы ,как надо,но окна то не видно.Если вызвать окно и функцию отдельно- борода как не крути,если пихнуть окно в функцию - не лучше.Как вызвать окно и функцию с нужным мне значением в одной строке.Ну не выходит.То что ты пишешь слегка очевидно.Я уже почти всё перепробовал.

Мне нужно именно окно ибо элементов интерфейса много,они друг на друга будут накладываться и нужно между ними как-то перключаться

Добавлено (22 января 2016, 23:16)
---------------------------------------------
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Всё,спасибо я разобрался ранше цикл считал дистанцию между ячейками и боксами,я совсем забыл что теперь они в окне((но я ещё не до конца разобрался по каким расчетам считаются координаты gui в окне.Ну завтра тогда буду уже разбираться)

Сообщение отредактировал Valik_Fenko - Пятница, 22 Января 2016, 22:56
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Gui.Window (1)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг