Пятница, 29 Марта 2024, 08:58

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Debugging в Unity3D через MonoDev (делюсь опытом)
Debugging в Unity3D через MonoDev
KamiRoninДата: Среда, 15 Мая 2013, 00:22 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Доброго времени суток всем!

Пришел в геймдев из системного программирования - там мы привыкли к отладке.. А тут в Юньке приходилось юзать Debug.Log(message) [JavaScriptUnity].
Но вот добрались руки мои до дебагинга в Unity по полной..

Делюсь опытом.

Концепция перехода к отладке в Unity.
Отладка начинается с окна MonoDevelop.
Его нужно открыть НЕ из Unity (тогда в отладку вы не перейдете!), а отдельно. Закрываем проект Unity, скрипт которого мы хотим отлаживать (! - обязательно), т.е. остаемся в МоноДев.
Далее, ставим точку останова в нужном месте в скрипте (F9 находясь в нужной строке).
Затем идем в меню -> Run -> RunWith -> Unity Debugger.
И... MonoDev сам запускает Unity с нужным проектом; и .. все.. больше ничего не происходит.
в Unity жмем Play. Рекомендую в окне Игра - включить режим Maximize on play.
Играем пока не сработает точка останова. Если все идет нормально.. то во время выполнения исследуемой функции, в паннели задач замигает кнопка окна MonoDev.
Войдя в него мы сможем просмотреть значения переменных (встать на упоминание переменной в скрипте и нажать Shift+F9), добавить её для постоянного отслеживания, пройтись по шагам программы... в общем - debugging him!

Проблемы.
Бывает при переходе в МоноДев по точке останова - все виснет! До игры не достучаться, монодев ничего вроде не показывает... Мне помогло нажимание кнопки Step-Out (выйти из трассировки текущей функции), она же Shift+F11.
Тоже самое помогло если вы использовали "трассировку с заходом" в функцию на чем нибудь системном (и даже не очень). В этом случае имя функции в МоноДев высвечивается зеленым и "ничего не происходит". Смело жмем степ-оут.
Иногда нужно просто подождать. Иногда возникает ситуация когда логика скрипта переходит в интерактивный режим - т.е. нужно вернуться в игру и там что то сделать (МоноДев - сам нас туда не возвращает).
Иногда нужно использовать команду в меню Run -> Continue или там же Stop чтобы выйти из штопора.

По завершению отладки - настоятельно рекомендую закрыть Unity и открыть его снова ручками! Иначе бывают совершенно непонятные глюки - то с графикой, то со скриптами, то с физикой в игре. Просто лыжи не едут и все тут! После перезапуска становится все нормально. При закрытии Юньки - МоноДев переходит в обычный режим автоматом.. но как то криво. Его советую тоже перезапустить.

Вот и весь рассказ.
Благодаря дебагингу решил проблему за 5 минут.. над которой бился три часа с этими Debug.Log() сообщениями в консоль... Т.ч. делайте выводы! smile


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.


Сообщение отредактировал KamiRonin - Среда, 15 Мая 2013, 00:37
robertonoДата: Среда, 06 Ноября 2013, 21:09 | Сообщение # 2
Чокнутый Кот
Сейчас нет на сайте
Пользуюсь! Иногда нужно.

Добавлено (06.11.2013, 21:09)
---------------------------------------------
Спасибо)

Сообщение отредактировал robertono - Среда, 06 Ноября 2013, 21:08
shubniggurathДата: Среда, 06 Ноября 2013, 21:42 | Сообщение # 3
www.playnoread.com
Сейчас нет на сайте
KamiRonin, может еще опишешь как Visual Studio к юньке подрубать?

Учу 3д!
robertonoДата: Среда, 06 Ноября 2013, 22:03 | Сообщение # 4
Чокнутый Кот
Сейчас нет на сайте
shubniggurath, дебаг или просто использование вижуал студио вместо моно девелоп?
true_abrakadabraДата: Среда, 06 Ноября 2013, 22:04 | Сообщение # 5
Unity3d - ван лав
Сейчас нет на сайте
shubniggurath, Заплати и наслаждайся smile

Ниндзя
KamiRoninДата: Четверг, 07 Ноября 2013, 08:52 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Цитата shubniggurath ()
может еще опишешь как Visual Studio к юньке подрубать?

UnityVS который упоминает true_abrakadabra, одно из самых лучших решений, он нужен как раз, чтобы решить проблему дебагинга через VS.

но на сайте Unity, в справке и других ресурсах есть простые инструкции о подключении VS для скриптинга. вот тут почитай.


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.


Сообщение отредактировал KamiRonin - Четверг, 07 Ноября 2013, 09:00
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Debugging в Unity3D через MonoDev (делюсь опытом)
  • Страница 1 из 1
  • 1
Поиск:

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