43

Советы новичкам Unity (разработка игр)

Все ниже описанное является моим личным опытом геймдева и осваивания движка Unity и не обязательно к применению. Однако вполне может стать своего рода Best Practice для новичков (а может и другим пригодится). 

1) Update ()


Метод Update показан чуть ли не во всех официальных уроках по Unity. Однако в скором времени вы поймете, что не стоит пихать его во все скрипты. Альтернативой является применение необходимых изменений путем вызова их из другого объекта (сценария) по событию.

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

Почему так: если у вас будет 1 монетка которая в методе Update() проверяет не подобрали ли ее, то посмотрите на производительность игры если у вас на экране будет 1000 таких монет. Про большое количество объектов расскажу ниже.


2) Стандартные ассеты

Смело импортируйте в свой проект стандартные ассеты и шерстите их. Там очень много всего полезного. Вот почему:


Изначально попробовав разобраться со стандартными способами управления персонажа, я подумал, что они слишком сложны для простых действий. И как результат – долго и упорно писал свой контроллер для персонажа. Однако в конечном счете столкнулся с тем, что мой контролер не работал на мобильных платформах (а я делал кроссплатформенный проект).


В общем в результате я потратил время и все-таки разобрался в стандартных ассетах управления и понял, что они очень хорошо и удобно написаны. Более того – они кроссплатформенные и работают на всех устройствах. После этого смело удалил все что я сделал в этой части и заменил на стандартные средства – радости моей не было предела.


Другая история касательно этого же – перерыл весь интернет и написал свой контролер для камеры. Камера следовала за персонажем, но плавно, и не двигалась в случае небольших движений игрока или его прыжков, а также не выходила за рамки уровня. А потом нашел скрипт в стандартных ассетах который делал тоже самое… (CameraFollow)

3) Частицы


Частицы — это не только дым, взрывы, мех и один, а то и два килограмма диетического мяса :)


В некоторых уроках я видел, как пули/ракеты/фаерболы делали путем инициализации (клонирования из префаба) объекта, который сам по себе двигался.


Т.е. на деле это так: GameObject игрока генерирует другие GameObject’ы которые имеют свой коллайдер и кучу скриптов на них. А теперь представьте сколько GameObject’ов будет у вас если игрок будет стрелять этими ракетами из пулемета? В общем заменяйте по возможности любые подобные объекты на частицы (а если вы стреляете – то лучше RayCast’ы). В версии Unity 5.3.1 (вроде бы) появились 2D коллизии частиц.

4) Кнопки и интерфейс


Стандартные компоненты GUI очень удобны в использовании – используйте их, и нечего тут говорить больше.

4) Плагины, примочки к Unity, стороннее ПО


Если что-то можно сделать с помощью Unity – делайте, и даже не вздумайте загадить свой проект плагинами и подобными вещами.


Пример: Использовал плагин для создания уровней по принципу Tile Map, в конечном счете ужаснулся, когда увидел сколько мусора у меня в проекте появилось и как жутко выглядит готовый результат (множество блоков и у каждого свой коллайдер). Ну и далее и вовсе решил уйти от принципа Tile Map. А еще позже увидел, что данный механизм планируется к появлению в ближайшей версии Unity (Очень жду).



5) Сначала прототипы, потом красота


Сам я до сих пор следую обратным путем, хотя и знаю, что это не совсем верно. Но вот мой личный опыт – после установки плагина для Tile Map уровней, я бросился рисовать огромное количество спрайтов, из которых должен был собираться уровень. Ну как я решил потом поступить с идеей использования Tile Map вы уже знаете, а результатом стала огромная трата времени и море не нужных более спрайтов для уровня.

6) Вибрация мобильного устройства, акселерометр, индикаторы и т.д.


Все гораздо проще чем вы думаете, в справке по Unity все это хорошо описано. Ищите HandHeld, Input.acceleration

7) Обязательно смотрите официальные Best Practice по Unity


Например, от туда я узнал много интересных способов упрощения анимации персонажей, а так же про кнопку «back» на Android устройствах (в приложениях она распознается как Input.GetKeyDown(KeyCode.Escape) )



8) События в анимациях


В менеджере анимаций есть кнопка

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

Ну в общем вроде пока все, если будет интересно, то сделаю еще один подобный пост.


P.S. Сразу извиняюсь, если что то сказал не верно или не понятно – я не так давно знаком с Unity. Я скорее больше просто программист. Цель была помочь новичкам 


P.P.S Если нужно про что то более подробно расписать – то смело спрашивайте, расскажу в следующем посте. В этом посте не стал все подробно расписывать потому что получился бы очень длинный пост.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
4) Плагины, примочки к Unity, стороннее ПО
Если что-то можно сделать с помощью Unity – делайте, и даже не вздумайте загадить свой проект плагинами и подобными вещами.

Ну да, давайте все писать говнокостыли, вместо проверенных временем плагинов.

раскрыть ветку (17)
1
Автор поста оценил этот комментарий

Проверенный временем плагин это одно. А куча плагинов добавленных потому что описание красивое и вроде как подходит - уже другое.

раскрыть ветку (16)
Автор поста оценил этот комментарий

Да даже куча плохо написанных плагинов - это полезно для новичка.

раскрыть ветку (15)
2
Автор поста оценил этот комментарий

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

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Вы уж определитесь, что вы хотите. Делать игры или прокачивать свой личный скилл в программировании. Доту вообще без всякого программирования сделали. Просто мод в редакторе наваяли, а не стали создавать чистый проект на каком-нибудь движке.

0
Автор поста оценил этот комментарий

Хай, если не трудно, то можешь ответить в вк на пару вопросов касательно движка ?:) 

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Нет не трудно. (только сегодня увидел сообщение)

0
Автор поста оценил этот комментарий

в вк ИД так же как тут ник

0
Автор поста оценил этот комментарий
А как разобраться в том что глючит - код написанный новичком или неопределенное (для него) поведение плагина?

Если новичок расковыряет плагин и ему хватит знаний оценить качество его работы, то он его включит проверенные и будет смело пользовать в дальнейшем. А так, ловить ошибки в чужом коде то еще удовольствие. Но хуже, когда использование плагина приводит к костылям в своем.

раскрыть ветку (9)
0
Автор поста оценил этот комментарий

А что мешает смотреть отзывы прежде, чем качать плагин? Если он не работает - то удалить.

раскрыть ветку (8)
2
Автор поста оценил этот комментарий
Ага, вы пробовали добавить модуль, логику программы писать в расчете на этот модуль, а потом оп оп и не пошло, раз и удалим? Как правило это перепись всего и вся, а так же забытый костыль там и еще вооон там, который выстрелит внезапно или в каком-то определенном случае.

Новичку полезно писать, просто полезно, он начинает понимать что делает, как это работает, какие есть механизмы и в каком случае они полезны. Иначе опыта не будет

раскрыть ветку (7)
0
Автор поста оценил этот комментарий

Ну конечно пробовал. И до сих пор жалею, что сперва не ознакомился с плагинами прежде чем изобретать свои велосипеды. Куча времени ушла вникуда. А изучение чужих практик очень полезно для развития.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий
Поддерживаю про изучение, только при наличии наставника или человека хорошо разбирающегося в выбранных плагинах.

Опыт велостроения тоже разный бывает. Но это уже холивар конкретных опытов пошел.

В итоге имхо, много плагинов новичку плохо, ваш выбор что их нужно сразу взять и освоить, а я не согласен что новичок потянет. Если все правильно, предлагаю на этом закончить. Согласны?

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Я не согласен с вот этим:

Если что-то можно сделать с помощью Unity – делайте, и даже не вздумайте загадить свой проект плагинами и подобными вещами.

Тут явное предложения для новичка делать всё самому, хотя плагины это инструменты расширения и умение ими пользоваться зачастую гораздо ценнее, чем умение такой плагин написать.

На этом я могу и закончить:)

раскрыть ветку (4)
0
Автор поста оценил этот комментарий
Черт, не удержусь =)

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

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Просто бытует заблуждение что программист в игрострое самый главный/ценный сотрудник. Тот что делает игру. Поэтому чем круче программист, тем лучше игры он делает. Хотя в реальности главный это геймдиз, который может вообще не уметь программировать.

раскрыть ветку (2)
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества