Play now

воскресенье, 8 июля 2012 г.

Дебаг в Unity

Сегодня опять возвращаюсь к теме разработки игр. За полгода накопилось достаточно много впечатлений от движка Unity 3d.

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

В мелочах кроется вся коварность движка. Поэтому форумы переполнены вопросами новичков.

Сложней всего было понять как устроен дебаг (исправление ошибок). Построчная отладка (трассировка) вроде как есть, но работать с ней неудобно. Пока что даже не встречал, кто ней пользуется.

Самым "народным" методом стала функция Debug.Log() . В результате мы видим только строчки текста внизу редактора. При этом повторяющиеся  строчки не отображаются.
Также этот метод практически бесполезный при тестировании вне редактора ( девайсы, браузер, windows),  так как никаких сообщений во время игры мы не видим.

Хорошей заменой может стать использование стандартного OnGUI() . Например:


  void OnGUI()
{
GUI.Label(new Rect(0, 30, 600, 400), "debug: "+debugtext);
}


В таком случае нужную информацию мы видим всегда, на любой платформе. А чтобы наше сообщение появилось на экране - просто добавляем нужный текст к переменной debugtext
debugtext+="Game loading";

Еще один способ отслеживать переменные является обычная вкладка Inspector. Чтобы увидеть там свою переменную ее нужно отметить как public.

Таким образом можно узнать состояние каждого игрового объекта, выбрав его в окне Scene.

На подобных мелочах и строится вся разработка на Unity. И часто эти мелочи определяют сроки создания игры.

Удачной разработки!




Комментариев нет:

Отправить комментарий