Четверг, 28 Марта 2024, 11:52

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Не работает переход к другому уровню.
Не работает переход к другому уровню.
BestOfOlegДата: Четверг, 11 Сентября 2014, 18:39 | Сообщение # 1
был не раз
Сейчас нет на сайте
Имеется 3 сцены.Одна сцена - меню, и две игровые.Переход из меню на обе игровые сцены проходит нормально.А вот со сцен в меню возник баг(ну или мой недочёт).Вообщем делаю как обычно - сохраняю сцены, добавляю их в Build Settings, пишу код...Компилируется без ошибок, но вместо перехода на сцену с меню просто перезагружает этот уровень.Два дня уже парюсь, на форумах ищу...
Вот мой код:
Код

       public bool itAngelBtn = false;
       public bool itDaemonBtn = false;
       public bool itQuitBtn = false;
       public bool itBackBtn = false;
       void OnTriggerEnter2D(Collider2D other)
       {
            if(itDaemonBtn)
            {
                 Application.LoadLevel(2);
            }
       }
       void OnMouseDown()
       {
          if(itBackBtn)
        {
         Application.LoadLevel(0);//ВОТ ЭТА СТРОКА НЕ РАБОТАЕТ!
        }
        if(itQuitBtn)
        {
         Application.Quit();
        }
       }


Юнька^^

Сообщение отредактировал BestOfOleg - Четверг, 11 Сентября 2014, 18:51
berilДата: Четверг, 11 Сентября 2014, 19:12 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
а Application.Quit(); работает ? Мне кажется метод void OnMouseDown() не срабатывает



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
BestOfOlegДата: Четверг, 11 Сентября 2014, 19:13 | Сообщение # 3
был не раз
Сейчас нет на сайте
beril, OnMouseDown срабатывает.Application.Quit() работает

Юнька^^

Сообщение отредактировал BestOfOleg - Четверг, 11 Сентября 2014, 19:15
FolleahДата: Четверг, 11 Сентября 2014, 19:33 | Сообщение # 4
Архитектор
Сейчас нет на сайте
Цитата beril ()
а Application.Quit(); работает ? Мне кажется метод void OnMouseDown() не срабатывает

Кулхацкер. Советы прямо-таки для слюнявых джуниоров, которые нифига не смыслят в коде. Я при первом же тесте скрипта меню (из одной игрули) заметил такой фейл. Не знаю, это баг такой или что, вдаваться в подробности не стал. Попробуй дебажить, что ли...




Сообщение отредактировал Folleah - Четверг, 11 Сентября 2014, 19:34
BestOfOlegДата: Четверг, 11 Сентября 2014, 19:42 | Сообщение # 5
был не раз
Сейчас нет на сайте
Folleah, а как дебажить если не работает LoadLevel?Или есть другие методы для перехода?

Юнька^^
FolleahДата: Четверг, 11 Сентября 2014, 19:49 | Сообщение # 6
Архитектор
Сейчас нет на сайте
Цитата BestOfOleg ()
Folleah, а как дебажить если не работает LoadLevel?Или есть другие методы для перехода?

Попробуй выводить название (индекс) текущего левела, пробуй юзать Application.isLoadingLevel


BestOfOlegДата: Четверг, 11 Сентября 2014, 20:05 | Сообщение # 7
был не раз
Сейчас нет на сайте
Folleah, пишет название сцены игры, а надо бы меню)))

Юнька^^

Сообщение отредактировал BestOfOleg - Четверг, 11 Сентября 2014, 20:10
FolleahДата: Четверг, 11 Сентября 2014, 20:10 | Сообщение # 8
Архитектор
Сейчас нет на сайте
BestOfOleg, мб нужно как то текущий левел выгружать из памяти

BestOfOlegДата: Четверг, 11 Сентября 2014, 20:12 | Сообщение # 9
был не раз
Сейчас нет на сайте
Folleah, а анимация мешать не может???

Юнька^^
rgs_hakerДата: Четверг, 11 Сентября 2014, 20:13 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
может пропущено
else
if(itQuitBtn)
{
Application.Quit();
}


_____
BestOfOlegДата: Четверг, 11 Сентября 2014, 20:15 | Сообщение # 11
был не раз
Сейчас нет на сайте
rgs_haker, неа я там лог выводил над Application.Quit(); и после... + не работает то верхнее условие...

Юнька^^

Сообщение отредактировал BestOfOleg - Четверг, 11 Сентября 2014, 20:17
FolleahДата: Четверг, 11 Сентября 2014, 20:37 | Сообщение # 12
Архитектор
Сейчас нет на сайте
BestOfOleg, по сути не должна. Пробуй гуглить, полюбому ответ есть.

RangerДата: Четверг, 11 Сентября 2014, 20:43 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
loadlevel отлично работает.
Не сочти за труд, отдебажь сам свой код.


bovatitarДата: Четверг, 11 Сентября 2014, 21:04 | Сообщение # 14
был не раз
Сейчас нет на сайте
Нужно добавить сцену в build settings!
berilДата: Четверг, 11 Сентября 2014, 21:06 | Сообщение # 15
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата BestOfOleg ()
+ не работает то верхнее условие...

Может как раз оно и работает ? и itBackBtn равно false ? В общем, как писали выше дебаг. Оно не может не работать




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
MANMANAДата: Четверг, 11 Сентября 2014, 21:07 | Сообщение # 16
почти ветеран
Сейчас нет на сайте
Исправь с Application.LoadLevel(2);
на Application.LoadLevel(0);
и посмотри, какая сцена загрузится...

Где-то в скрипте, не обязательно в этом, что-то загружает твой уровень по нажатию твоей кнопки back.
а скорее всего (поскольку, мне кажется, что ты находишься на сцене 2) у тебя где-то проблемы с выставлением true/false для itDaemonBtn и itBackBtn.
проверяй, где ты делаешь itDaemonBtn=true, вместо itBackBt=true, либо где ставишь false.

Чтобы проверить истину или ложь моего предположения добавь еще одну кнопку, еще одну переменную для нее и еще одну сцену (пустую, к примеру), и посмотри, какая сцена загрузится.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
BestOfOlegДата: Четверг, 11 Сентября 2014, 21:21 | Сообщение # 17
был не раз
Сейчас нет на сайте
MANMANA, я уж думал, что баг кроется в этом.Но нееет.Всё тоже самое

Юнька^^
MANMANAДата: Четверг, 11 Сентября 2014, 21:24 | Сообщение # 18
почти ветеран
Сейчас нет на сайте
отправь в приват все булевы переменные
выставь true только для itBackBtn


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
BestOfOlegДата: Четверг, 11 Сентября 2014, 21:27 | Сообщение # 19
был не раз
Сейчас нет на сайте
beril, оно false только по дефолту)))в редакторе на нужном объекте оно очень даже true

Добавлено (11.09.2014, 21:27)
---------------------------------------------
MANMANA, Нет возможности сделать это так как в они должны быть видны в редакторе.Тем не менее попробовал, нет изменений...


Юнька^^

Сообщение отредактировал BestOfOleg - Четверг, 11 Сентября 2014, 21:29
MANMANAДата: Четверг, 11 Сентября 2014, 21:37 | Сообщение # 20
почти ветеран
Сейчас нет на сайте
поменяй местами 2 и 0 для загрузки уровней, и 0 на 2 для Application.LoadLevel(2); и Application.LoadLevel(0); соответственно
НАПИШИ, что получается...
если ничего не получается, значит либо в скрипте не сохраняются сделанные тобой изменения, проверь звездочку, либо этот скрипт у тебя вообще не привинчен ни к чему ("Нет возможности сделать это"... "Тем не менее попробовал, нет изменений..." ), либо... троллинг уже пошел?


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Четверг, 11 Сентября 2014, 21:38
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Не работает переход к другому уровню.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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