Unity — всё по этой теме для программистов


Оглавление (нажмите, чтобы открыть):

Студия готового дизайна GS studio

Login

Привет! Я — Алексей Науменко, .NET Developer в Plarium Kharkiv. Я хочу рассказать о том, как начинал свою карьеру, и посоветовать, с чего разработчику начать изучение Unity.

Unity3D — один из самых популярных игровых движков. В последние годы всё больше отличных игр выходят благодаря тому, что Unity прост в использовании и предлагает разработчикам много готовых решений.

Как я начал программировать

Я учился в ХАИ по специальности «Телекоммуникации». У нас был преподаватель, который конструировал беспилотники. Благодаря ему уже на курсе я начал писать простой код на С для микроконтроллеров, которые управляют передачей данных с земли на БПЛА. Тогда я решил, что нужно выучить какой-то актуальный язык программирования, чтобы писать на нём постоянно, а не только для решения узких задач.

Выбирал я между С# и Java: читал книги по этим языкам, но потом просто открыл Visual Studio и Java IDE и сделал выбор в пользу первого по «обертке». Не самый правильный способ анализа преимуществ и недостатков, но о выборе я не жалею.

Почему пошел в геймдев и выбрал Unity

В классах мы с другом пытались сделать игру. И хотя получилась ерунда, романтика процесса осталась со мной. К тому же я люблю играть, особенно в древние RPG.

После университета я работал в нескольких продуктовых компаниях: год занимался веб-программированием, потом 4 года разрабатывал ПО для call-центров. Но меня всё время преследовала идея попробовать себя в разработке игр. Так что в свободное от работы время я стал думать, какой движок использовать для будущей игры.

Многие разработчики используют Unity и Unreal Engine, но я хотел изучить все варианты. Поэтому я стал разбираться, на чем написаны популярные проекты. Оказалось, что это либо самописные движки, как, например, у Naughty Dog, либо движки, о которых очень мало информации в интернете — чтобы работать с ними, нужно, скорее всего, некоторое время работать в индустрии и знать хотя бы общие принципы построения игровых движков.

Я вернулся к выбору между Unity и Unreal Engine. И так как на тот момент я уже 4 года программировал на .NET, выбор был прост: в Unity есть C#, а в Unreal Engine — нет. Еще один плюс Unity: я погуглил некоторые интересные мне вопросы и почти на все из них нашел попытки ответить. Пусть не всегда профессиональные, но информация была, и было с кем ее обсудить.

У Unity есть аналог StackOverflow — Unity Answers. Там очень просто найти ответы на конкретные вопросы на начальном этапе, поэтому порог входа очень низкий, особенно если человек понимает хотя бы общие принципы программирования.

С чего начать обучение

Я изучал уже решенные задачи, похожие на те, что интересовали меня. Однажды я искал конкретное решение, но не нашел его в Asset Store. Поэтому начал мониторить форумы и наткнулся на парня, который делал именно то, что мне было нужно, но в Store его решение не пропустили по каким-то требованиям. Я написал ему сообщение и предложил купить его наработку. Он очень обрадовался возможности подзаработать — это был румынский десятиклассник. Чуть ли не лучшее мое вложение в изучение движка: 10$ плюс столько же за Swift-платеж.

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

Всегда лучше ориентироваться на какой-то пример. Я распотрошил покупку: там было много наворочено, но я переделал это решение под свои нужды. Пока разбирал этот пример, многие вопросы начального уровня отпали. Так начал понимать основные принципы работы с Unity и продолжил разбираться с возможностями движка.

За месяц-полтора изучил базу, но не поверхностно, а достаточно предметно — то, что было нужно на тот момент. Сначала возникло очень много вопросов, как и с любой новой технологией. Я смотрел нативный код и читал мануалы, чтобы разобраться, почему что-то работает в Unity именно так, а не иначе. Но, конечно, будет тяжелее и дольше, если нет конкретных задач и ты не понимаешь, зачем это делаешь.

Нет смысла изучать Unity просто так — стоит начинать с решения конкретных проектных задач. Лучше сразу определиться: «Я хочу сделать Pac-Man». Начинаешь думать, что для этого понадобится: например, нужно реализовать управление персонажем. Желтое существо ест белые точки. Существо должно понимать, что наткнулось на съедобный объект — значит, нужно начать с определения соприкосновения съедобной точки с Пакменом. Тогда появляется конкретная проблема и необходимость искать пути ее решения — а это, по-моему, и есть лучший способ изучения технологии.

Переход с .NET на Unity на практике

Когда мы собеседуем кандидатов, прямо говорим, что не проверяем знания Unity, а фокусируемся на .NET. На практике мы убедились: человека, который знает .NET, гораздо легче обучить работе с движком, чем того, кто начал изучать язык параллельно с Unity.

Поэтому приглашаем на собеседования людей, которые знают .NET и просто хотят работать на Unity. Дальше всему обучим.

Иногда мы собеседуем Senior или Middle+ .NET программистов, которые не знакомы с Unity вообще. При этом человек не переходит на позицию Junior, потому что в Plarium, да и в работе с движком, нет понятия Unity Junior. Если с .NET всё хорошо, освоить движок будет очень просто.

Что почитать

Кроме Unity Answers есть еще UnifyWiki. Можно декомпилировать код и посмотреть результат (он не обфусцирован).

На старте очень пригодились форумы (answers.unity3d.com и forum.unity3d.com). Также я читал книгу Game Engine Architecture Джейсона Грегори. Автор в ней не говорит конкретно о Unity, но подробно рассматривает составные части и особенности игровых движков в целом. Он в деталях описывает, из чего состоит движок, какая математика нужна, как устроен рендеринг. Эта книга расширяет представление о Unity: я начал понимать, что в этом движке есть или должно быть, что с него спрашивать. Единственная трудность — для прочтения этой книги нужно быть очень мотивированным: она не нудная, но достаточно объемная.

Преимущества работы с Unity

Большие компании любят Unity за кроссплатформенность. Если ты что-то написал, оно билдится и под iOS, и под Android — пусть и с надстройками, но зато сразу работает без особых плясок. Конечно, если это не касается платежки 🙂

В нашем случае преимущество также в том, что Plarium — официальный партнер Unity с поддержкой уровня Enterprise Support. Нам не только быстро отвечают на запросы, но и предоставляют больше открытого кода, и мы можем сами что-то вскрыть и допилить.

Надеюсь, информация будет полезна тем, кто планирует работать с Unity. Успехов!

Введение в программирование C# на Unity

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

Unity поддерживает следующие языки программирования: C# и Javascript. Языки C# и Javascript считаются одними из самых популярных среди программистов. На C# пишутся программы для компьютера, веб приложения, а Javascript активно используется для создания интернет-страниц. В нашем случае:

Установка среды разработки

Чтобы писать скрипты, необходим редактор кода. В комплекте с Unity идет MonoDevelop, так что его не требуется устанавливать отдельно. Другой вариант — использовать Visual Studio — мы рекомендуем ее. Сменить среду разработки можно в настройках: Edit → Preferences, а затем выбери панель External Tools.

Вывод сообщения в консоль Unity

Когда ты напишешь свой первый код и добавишь его в Unity, Unity проверит код и, если в нем нет ошибок, произойдет компиляция.

Консоль (англ. — Console) – это панель в Unity, которая отображает ошибки в коде (отображаются красным значком), предупреждения (отображается желтым значком) и позволяет выводить справочную информацию (белый значок). По умолчанию эта панель отображается в нижней части программы в закладке Console. Если эта панель не отображается на экране, то в главном меню выбери Window → Console.

Чтобы создать скрипт выбери Assets → Create → C# Script. Имя скрипта должно быть обязательно на английском и начинаться с большой буквы. Открой созданный скрипт и напиши:

Скрипт не будет работать до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Ты можешь прикрепить скрипт перетащив его на игровой объект в окно Иерархия или через окно Инспектор выбранного игрового объекта.

Код, который должен вызываться один раз при старте программы, ты можешь написать внутри функции Start(), как в примере выше.

Код, который должен вызываться каждый кадр, ты можешь написать внутри функции Update().

Переменные

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

Переменная — поименованная область памяти, адрес которой можно использовать для осуществления доступа к данным и изменять значение в ходе выполнения программы. Переменные хранят в себе информацию разного типа, эти данные называют значением переменной. Для каждого типа данных есть свой тип переменной. Например:

  1. Целочисленные: int (от –2 147 483 648 до 2 147 483 647), long (от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807).
  2. Символы и строки: char (элемент в кодировке UTF-16), string (последовательность элементов в кодировке UTF-16).
  3. С плавающей запятой (дробные): float (от 1,5 × 10–45 до 3,4 × 1038, с точностью до 7 цифр), double (от 5,0 × 10–324 до 1,7 × 10308, с точностью до 15 цифр).
  4. Логические: bool (значение true или false).

Инициализация переменной

Все переменные в C# должны быть объявлены (инициализированы) до их применения. Например:

Задать значение переменной можно, в частности, с помощью оператора присваивания — знак «=». Кроме того, при объявлении переменной можно сразу задать ее значение. Например:


Переменные численных типов можно складывать, вычитать, умножать и делить:

+ — операция сложения;

— операция вычитания;

* — операция умножения;

/ — операция деления.

А вот так сумму чисел можно вывести в консоль:

Счетчик времени с помощью Time.deltaTime

Практически во всех играх требуется знать сколько времени прошло с момента запуска игры (пример: игры на время). Но в Unity мы можем узнать только сколько прошло времени между кадрами (напоминаю, что игра – это набор кадров, которые быстро меняются. В одну секунду количество таких кадров может достигать 60 и больше).

Чтобы узнать сколько времени прошло между кадрами — используется Time.deltaTime.

Чтобы сделать дробное число целым, ставим перед ним (int).

Позиция объекта

Координаты объекта хранятся в компоненте Transform, свойство — position. Каждая координата имеет тип float. Вот так можно выводить координаты объекта в консоль:

Первые шаги в Unity

Делаете первые шаги в Unity? Вам это кажется слишком сложным? Не переживайте, вы обратились по адресу. Ознакомьтесь со списком курсов и выберите свою программу обучения.

Больше, чем просто движок. Unity дает все необходимое для разработки качественного контента и достижения успеха. Разобравшись с Unity, вы поймете, насколько все просто.

Установите Unity и начните разрабатывать свою первую игру с простого и понятного шаблона Microgame. Попробуйте быстрые и интересные задания Creative Mods, каждое из которых занимает около 10 минут и позволит вам создать и опубликовать собственную игру на основе шаблона. Не забудьте присоединиться к группе пользователей Microgame, чтобы общаться с такими же начинающими единомышленниками. Мы также будем сообщать вам обо всех специальных предложениях!

Самый веселый способ изучения Unity
Установите Unity и научитесь основам игровой разработки благодаря Unity Game Dev Courses. Начните с изучения основ, а затем выберите свою специализацию: художественное оформление, программирование или дизайн игр. В результате изучения курса вы создадите великолепную игру Swords and Shovels!

Мастер Йода рекомендует:  20 лучших онлайн-инструментов для создания CSS3-кнопок

Запишитесь на Unity Game Dev Courses за 12 $ в месяц
Подписаться

Получите доступ к Unity Game Dev Courses БЕСПЛАТНО
Курсы Unity Game Dev теперь бесплатны для пользователей Unity Plus
Подробнее

Учитесь быстрее с Unity Plus
Оформите подписку на Unity Plus — для любителей, которые хотят быстрее научиться и приобрести необходимые навыки. Оформив подписку на Unity Plus с предоплатой за год, вы получите доступ к шести ценным обучающим ресурсам:

Unity Game Dev Courses БЕСПЛАТНО
Научитесь основам игровой разработки благодаря Unity Game Dev Courses (получите пакет стоимостью 144 $ БЕСПЛАТНО). Начните с изучения основ, а затем выберите свою специализацию: художественное оформление, программирование или дизайн игр. К окончанию курса вы создадите великолепную игру Swords and Shovels!

Скидка 20% в Asset Store
Ускоряйте разработку и издавайтесь быстрее, благодаря лучшим ресурсам и инструментам из Unity Asset Store. Благодаря скидке 20% на тысячи лучших и самых популярных ассетов вы приблизитесь к финишной прямой намного быстрее, чем мечтали.

Unity Success Advisor
Забудьте о неразрешимых проблемах. Став подписчиком, вы получите эксклюзивный доступ к услугам специалистов Unity, которые помогут вам:

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

Вакансия: программист на Unity

Вакансия: программист на Unity

Одними из самых популярных приложений являются игры. Это актуально как для рабочих столов Windows/Mac/Linux, так и для мобильных платформ Android/Mac/Windows Phone. Относительно недавно появилась среда, которая позволила вести разработку и осуществлять сборки игр под все популярные платформы и даже для веб, – Unity. Мы обратились к представителям компаний, чтобы выяснить, каких кандидатов они видят на позиции программиста Unity

  1. Какими знаниями и навыками должен обладать программист на Unity?
  2. Каков инструментарий программиста на Unity?
  3. Каковы требования компании к уровню образования потенциальных сотрудников?
  4. Какие требования предъявляются к опыту работы?
  5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

Александр Романов, ведущий разработчик Unity3D в компании Skytec Games

1. Программист на Unity должен отчетливо понимать принципы ООП, иметь развитое логическое мышление, внимательность и хорошую память.

2. В первую очередь это сам Unity и IDE для работы с кодом. Обычно для этого используется IDE, идущий в комплекте с Unity. Почти наверняка пригодится инструментарий для работы с Git-репозиториями или другими системами контроля версий. А дальше все зависит от специфики задач и особенностей компании. Если это мобильные разработки, то пригодится XСode для сборки приложения под iOS и их отладки. Для Android не требуется специальных программ для сборки (только Android SDK), однако для отладки пригодится Android Studio.

3. Обычно никаких специфических требований к уровню образования не предъявляется. Главное, чтобы человек имел все необходимые навыки и так или иначе имел опыт в программировании. Рекомендуется высшее техническое образование, а еще лучше, если оно будет в области ИТ.

4. В разных компаниях по-разному. Если есть навыки разработки проектов на Unity, то некоторые компании готовы взять человека и без опыта на стартовую должность. Но на более высокую должность и соответственно зарплату компании обычно устанавливают требование 3-5 лет опыта работы.

5. Да, конечно, в компаниях часто бывают специфические требования к сотрудникам. Обычно это знание английского языка (хотя бы на уровне чтения технической документации), умение работы с системами контроля версий, понимание принципов разработки клиент-серверных решений, иногда в требованиях встречается умение работать с нативными плагинами для мобильных платформ или навыки по их самостоятельной разработке и т.д.

Святослав Шумихин, Unity-разработчик, OOO InfoShell

1. Unity как трехмерный игровой движок включает в себя целый стек самых разных технологий. Соответственно, Unity-программисту нужно иметь очень широкий кругозор, чтобы всегда оставаться на волне новых технологий. Понятно, чтотакое количество не сможет охватить ни один человек, поэтому лучше быть специалистом в какой-то конкретной области, а обо всем остальном достаточно иметь какое-то представление.

Теперь про знания:

  • Конечно же, представление о том, что такое трехмерный мир, из чего он состоит, из чего состоят объекты 3D-мира – меши, полигоны, вертексы, текстурные координаты, нормали и пр.
  • Как все это рендерится – рендер буфер, очередность отрисовки, шейдеры, batching and drawcalls.
  • Игровой цикл (game loop) и сопутствующие события.
  • C#, принципы работы .NET, ООП, шаблоны проектирования применительно к Unity.
  • Структуры данных, сериализация.
  • Оптимизация кода, ассетов, сцен и проекта в целом.

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

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

Часто нужно знать и уметь применять законы физики в разных авто- и авиа-симуляторах. Даже при анимировании элементов GUI применяется физика.

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

2. Основной инструментарий программиста Unity, конечно же, сам редактор Unity и любая IDE, поддерживаемая редактором, – Microsoft Visual Studio, MonoDevelop, может быть даже SharpDevelop.

При разработке под Android в этот перечень добавляются Android SDK, Java JDK и разные утилиты из Android SDK: monitor – для отслеживания логов, keytool – для создания ключей и пр.

При разработке под iOS добавляем XСode, Terminal.

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


Теперь это все есть в Unity, и работа программиста сильно облегчается. Однако в зависимости от проекта и задач без отдельных утилит или инхаусных инструментов не обойтись.

Кроме работы собственно в Unity, для правильной организации проекта используются системы контроля версий (Git, SVN, Mercurial). Для управления задачами используются Agile-инструменты, а для удобства создания билдов внедряется Jenkins, тот самый Continuous Integration.

Так как программист много работает с ассетами, то иногда может потребоваться запустить Photoshop или какой-нибудь 3D-редактор, или звуковой редактор.

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

Ну а стандартные требования: C#, ООП, .NET, знание основ трехмерного мира, понимание принципов работы игровых движков, знание английского на уровне чтения документации и умения задать вопрос Google.

Плюсом будет знание шейдеров, систем рендеринга, постпроцессинга, персонажных анимаций, сетевых протоколов и понимание принципов работы серверов, баз данных.

4. Как я уже сказал, компания пока не ищет программистов Unity. Требования обычно зависят от поставленных задач. На какие-то задачи хватит и студента, а где-то придется искать спецов с парой ААА-проектов в портфолио.

5. Нет, на сегодня каких-то специфических требований мы не выработали.

Алексей Дюдя, Team Lead и Unity-разработчик компании iLogos

1. В первую очередь программист на Unity должен уметь программировать на C# и работать в редакторе Unity. Движок Unity дает возможность делать кросс-платформенные игры без особых знаний OpenGL или DirectX, однако понимание базовых концепций компьютерной графики и низкоуровневого API является несомненным плюсом и очень помогает в процессе оптимизации приложений.

Также программист должен уметь грамотно проектировать приложения. К этой сфере разработки можно отнести знания шаблонов проектирования, SOLID-принципов, понимание UML-диаграмм.

2. Важнейшими инструментами программиста на Unity являются сам редактор Unity и IDE (Visual Studio, Rider EAP, MonoDevelop). Однако, помимо этого, программист обязан уметь работать с системами контроля версий, такими как Git или SVN.

При работе с графикой иногда доводится работать с Photoshop и 3D-редакторами, такими как Maya или 3D Max.

3. Специфических требований к уровню образования потенциальных сотрудников у нас нет. Я сам попал в компанию, будучи студентом-третьекурсником. В первую очередь мы смотрим на знания и навыки кандидатов, предлагаем им выполнить небольшое тестовое задание. Однако, как показывает наша статистика, большинство успешных кандидатов все-таки имеют высшее образования по специальностям, связанным с разработкой ПО.

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

5. Специфических требований для кандидатов мы не выставляем, большинству вещей можно научиться в процессе работы, однако знание английского языка хотя бы на уровне pre-intermediate пригодится, большинство документации напроектах ведется на английском языке.

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

Сергей Профоров, генеральный директор ООО «Риэл Гео Проджект», офиса группы компаний «НЕОЛАНТ» в Дубне

1. В первую очередь программист на Unity должен владеть языком программирования C# и знать принципы объектно-ориентированного программирования. Во-вторых, владеть графическим интерфейсом среды Unity, способами расширения и автоматизации работы в нем. В-третьих, конечно, нужно знать, как работает движок Unity, жизненный цикл объектов, работу «корутин», назначение базовых классов, таких как MonoBehaviour.

2. Собственно среда разработки Unity. Для написания кода можно использовать MonoDevelop, но для пользователей Windows более привычна будет Microsoft Visual Studio с расширением для отладки приложений Unity.

В остальном разработчик либо сам расширяет инструментарий Unity под требования проекта, либо находит готовые решения в Asset Store.

Нелишним будет наличие графических редакторов, таких как Gimp, Adobe Photoshop или аналогов, и трехмерных редакторов Blender либо Autodesk 3ds Max и SketchUp.

3. Наша компания рассматривает соискателей с высшим либо с неоконченным высшим техническим образованием (студентов старших курсов). Изредка попадаются таланты без высшего образования или с другой специализацией, но сширокими компетенциями в области 3D и программирования.

4. Минимальным требованием к опыту работы является наличие хотя бы одного законченного приложения на Unity. Пусть это будет не сложная система, а однопользовательское приложение, главное – с логикой, объектами и задачами. Вэтом случае уже можно углубляться в наш профиль.

5. Наша компания успешно занимается 3D-технологиями уже давно, и поэтому необходимо понимание принципов работы трехмерной графики, рендеринга изображений, обработки физики объектов. Помимо этого, на проектах с высокими требованиями к производительности и ограниченными ресурсами необходимо владеть тонкостями реализации фреймворка .NET в Mono.

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

Александр Николаев, руководитель отдела мобильной разработки в компании PlayFlock

1. С одной стороны, у Unity довольно невысокий порог вхождения. К примеру, чтобы начать делать свой первый небольшой проект, достаточно опыта программирования на любом с-подобном языке. Unity поддерживает C#, поэтому переход на него не вызовет много проблем. Для дальнейшего постепенного изучения будет достаточно официальных обучающих материалов.

С другой стороны, говоря о программисте Unity более высокого уровня, определенно понадобятся навыки оптимизации кода и профилирования. Понимание того, как происходит рендеринг. Для этого придется изучить не только тонкости движка, но и принципы его работы. Без совокупности данных знаний крупный и красивый проект не создать.

Хочется отметить, что программист Unity занимается не только программированием. Часто бывает так, что приходится верстать интерфейс, создавать анимации, работать со звуками. Поэтому навыки и опыт в этих областях не будут лишними.

2. Сама Unity обладает достаточно большим инструментарием для разработки. И, конечно же, надо знать весь предоставленный набор. Кроме самой Unity, понадобится:

  • редактор кода/IDE – я использую Visual Studio, но можно использовать Mono;
  • система контроля версий GIT – я отдаю предпочтение графической оболочке SourceTree;
  • для сборки билдов под iOS понадобится MacOS с установленным XCode.

Кроме вышесказанного, советую просматривать Asset Store. Там бывает много полезного и интересного.

3. Рассматриваются кандидаты только с высшим образованием. В то же время профильность не играет огромной роли. Более важным фактором служит умение думать и применять свои знания в деле. В нашей практике есть успешные примеры работы с кандидатами, не имеющими соответствующего образования.

4. Для каждой должности требуется разный опыт. Для младшего специалиста достаточно домашнего проекта на любой из платформ. Этого опыта обычно хватает для того, чтобы набить пару десятков обязательных шишек. Конечно же, знания кандидата проверяется тестовым заданием. Так мы можем быть уверены в том, что кандидат, приступив к работе, сможет самостоятельно выполнять самые простые действия с Unity и кодом.

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

5. В своих играх мы часто используем сторонние плагины. Такие как SDK социальных сетей, код рекламных интеграторов, решения для сбора статистики. Большинство из них не имеет сборку для Unity, а только под нативные языки платформ. Поэтому специфическим требованием к программистам Unity у нас являются базовые знания Java и Objective-C, а также минимальный опыт работы с Android Studio и XCode.

Павел Руфф, ведущий программист на Unity, стартап в ЕС

1. В геймдеве нет границ. Для начинающего разработчика нужны личные качества: стремление к играм и результативность.

Знания C# помогают, несложно перейти на Unity из корпоративной разработки. В моей практике успешно перешли сильные специалисты.

Стек технологий: движок Unity и C#. Все остальное зависит от проекта и команды.

Это могут быть Android/iOS-плагины, шейдеры, сетевое взаимодействие, архитектура и игровые паттерны, векторная математика, оптимизации.

2. Инструментарий разработчика: Git, Visual Studio, Resharper, Mac для iOS-сборки.

3. Требования по уровню образования… ну, думаю, 7 классов надо закончить. Конечно, высшее образование – обязательное требование во многих компаниях.

4. Требования к опыту работы для Senior/Lead: примерно 5 лет С#, 3 года Unity.

5. В наших командах внимание уделяется отсутствию регрессии, для этого рассматриваются аналитические способности и навыки контроля качества.

Дмитрий Коблык, CTO at Panzerdog

1. Нужно знать C#, иметь неплохую математическую и алгоритмическую базу.

2. Для комфортной работы достаточно Visual Studio и системы контроля версий (SVN, Git, etc.). Для сборки под iOS также потребуется Mac.


3. Требований к образованию нет, но если у кандидата есть диплом о высшем образовании, связанный с программированием, то это несомненный плюс.

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

5. Главное требование в нашей компании – кандидат должен любить игры и играть в игры.

Михаил Корчун, ведущий разработчик, Halfpixel Games

1. Unity довольно низкий порог входа. Есть большой соблазн использовать готовые решения из магазина плагинов (Unity Asset Store). Это дает возможность быстро начать, но у всех них есть ограничения, а зачастую просто низкое качество. В итоге проект может сильно пострадать. Подход DIY (Do it Yourself) довольно часто оправдывает себя, т.к. дает полную свободу.

2. Unity Editor, IDE для C# (мне лично нравится новый Rider от JetBrains), различные профайлеры: Unity Profiler, XCode, RenderDoc – зависит от целевых платформ.

3. Раньше я считал, что необходимо высшее образование в алгоритмах/математике/физике. Но я знаю нескольких отличных программистов без высшего образования. Они быстро добирают знания в нужных областях, как только появляется задача. Интересных и бросающих вызов задач море. Для меня лично это было основной причиной перехода в геймдев.

4. Желателен опыт именно игровой разработки. Я пришел в геймдев после 6 лет работы над корпоративным софтом. В разработке игр подход другой: гораздо чаще меняются требования, ограниченные ресурсы, некоторые подходы кразработке просто неэффективны (это ставило в ступор первый год).

5. В front-end-разработке есть направления: спецэффекты (FX, шейдеры), искусственный интеллект (AI), инструментарий (Pipeline/Editor Tools), интеграция внешних сервисов (Facebook, Android, iOS, Steam, рекламные площадки и т.д.), Multiplayer (Unet HLAPI/LLAPI, Photon), анимация, физика. В больших командах они представлены отдельными должностями. В небольших командах нужны универсальные разработчики с базовыми знаниями во всех областях.

Алексей Лукоянычев, Unity3D lead developer в dizzystyle apps

1. С#, алгоритмы, графика, знанием самой Unity.

2. Unity3d, IDE (Visual Studio, Rider, Mono, Et cetera), Git или любая другая SVC, голова.

3. Упорство, находчивость, трудолюбие.

4. Вся работа должна быть по делу. Чистый С# также приветствуется.

5. Самодисциплина должна быть на уровне – удаленка ведь.

Илья Боковенко, фрилансер

1. C#, ООП, векторная алгебра, graphics pipeline, shading models, шейдеры, современные техники рендера и оптимизации, отладка производительности. Движок, конечно, нужно знать в соответствии с потребностями проекта.

2. Сама среда Unity, Visual Studio.

3. Никаких. Лишь бы был в теме.

4. Dev – от года, senior – от 2, законченный проект.

Unity — всё по этой теме для программистов

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

В Unity есть логические шаги создания игры любого рода

Чтобы понять, как создать игру в Unity, вам сначала нужно узнать о фундаментальных компонентах в Unity:

1. GameObjects

Контент любого рода в Unity начинается с GameObject. Любой объект в вашей игре является GameObject: персонажи, источники света, спецэффекты, реквизит – всё.

Объекты GameObjects не могут быть чем-то сами по себе. Чтобы GameObject стал чем-то, ему необходимо придать свойства, что делается путем добавления компонентов.

2. Компоненты

Компоненты определяют и контролируют поведение объектов GameObjects, к которым они прикреплены. Простой пример — создание источника света, что включает в себя прикрепление компонента Light к GameObject (см. ниже).

3. Переменные

У компонентов есть ряд редактируемых свойств, которые можно настраивать в окне инспектора (Inspector) в редакторе и/или с помощью скриптов. В приведенном выше примере в число свойств источника света входят дальность свечения (Range), цвет (Color) и интенсивность (Intensity).

Программирование дает полный контроль над всеми объектами и их свойствами

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

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

Какие языки программирования можно использовать в Unity?

Unity поддерживает C#, стандартный в отрасли язык программирования, похожий на Java и C++.

Вы пришли к Unity с навыками программирования на C++?

C# легче освоить, чем язык C++. Кроме того, это “управляемый язык” в том смысле, что он автоматически управляет памятью: назначает и освобождает память, устраняет утечки памяти и т.д., с чем испытывают трудности многие начинающие и даже опытные программисты на C++. Вообще говоря, C# более предпочтителен, чем C++, если вы хотите сначала сделать игру, а позже иметь дело с более сложными аспектами программирования.

Отладка в Unity

Подстройка и отладка происходят эффективно в Unity, поскольку все игровые переменные отображаются прямо по ходу игры разработчиков, так что всё можно менять «на лету», не дописывая ни одной строчки программного кода. Можно приостановить игру в любое время или пошагово проходить по коду и смотреть, что происходит при выполнении очередной команды. Ссылки на документацию по профилированию и отладке приведены в конце этой страницы.

Скриптинг-процессор в Unity: MonoDevelop-Unity будет заменен на Visual Studio Community, начиная с версии 2020.1

.NET: в Unity использовалась интегрированная среда разработки Mono для скриптинга с «нативной» поддержкой C#. Однако, начиная с версии 2020.1, Unity будет поставляться с Visual Studio для Mac вместо MonoDevelop-Unity на macOS. Что касается Windows, Unity будет и дальше поставляться с Visual Studio 2020 Community, и не будет больше поставляться с MonoDevelop-Unity.
Скриптинг-процессор .NET 4.6 (текущий экспериментальный) в Unity будет поддерживать множество новых функций и возможностей отладки C#, доступных с версии C# 6.0. Это также предоставит новый опыт разработки в среде C# IDE с новыми возможностями C#.

IL2CPP: это разработанный в Unity скиптинг-процессор, который можно использовать как альтернативу Mono при создании проектов для некоторых платформ. Когда вы собираете проект с помощью IL2CPP, Unity переводит код промежуточного языка (IL) из скриптов в код C++, прежде чем создать нативный бинарный файл (например, .exe, apk, .xap) для выбранный вами платформы.
Учтите, что для создания проектов для iOS и WebGL доступен только скриптинг-процессор IL2CPP.

Кастомизация Unity путем расширения редактора

Вам, как программисту, предоставляется большая гибкость в Unity, поскольку вы можете расширить редактор своими окнами, работающими как «Инспектор», «Сцена» или любое другое встроенное окно стандартного редактора. Добавление собственных инструментов в Unity поддерживает уникальные рабочие процессы и потребности вашей команды, повышая в конечном счете эффективность работы.

Дополнительные ресурсы

Начало работы с руководствами по Unity
Загрузите практическое руководство с информацией и ресурсами, которые помогут начать работу, сэкономят время и научат максимально эффективной разработке 2D-игр или мобильных игр на Unity.

Учебные материалы по скриптингу
На этой странице вы найдете учебные материалы по скриптингу в Unity всех уровней, с начального и среднего уровней скриптинга геймплея до расширенного скриптинга редактора, разработки в Unity с помощью Visual Studio и учебных онлайн-сессий, на которых вы узнаете, как программировать простые игры в Unity.

Документация по скриптингу
Наши отличные документы по скриптингу покрывают все главные темы; далее приведены основные разделы и страницы для начала работы:

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


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

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

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

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

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

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

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

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

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

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

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

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

ТЗ для программиста Unity3D

Каким должно быть идеальное ТЗ для программиста Юнити? Достаточно ли одного общего ДизДока? Как помочь начинающим геймдизайнерам составить грамотно ДизДок и ТЗ для программиста? Вот на эти вопросы я и постараюсь ответить в этой статье.

пока в разработке. постепенно дополняется.

Каким должно быть идеальное ТЗ для программиста Юнити? Достаточно ли одного общего ДизДока? Как помочь начинающим геймдизайнерам составить грамотно ДизДок и ТЗ для программиста? Вот на эти вопросы я и постараюсь ответить в этой статье.

1. Общие положения.

1.1. Жанр и целевые платформы.

Здесь укажите:
— жанр игры (арканоид, платформер, стратегия, РПГ, ФПС, и т.д. и т.п.) ,
— вид игры 2D или 3D, изометрия, ромбическая, или гексо, вид сверху и т.п..
— мультиплей, онлайн или сингл.
— целевые платформы, например — Windows, Android, IOS и т.п.

1.2. Маркетинг, прототипы, особенности по новизне.

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

1.3. Формат экрана.

Здесь нужно определиться с базовым соотношением сторон экрана (aspect ratio) и базовым разрешением экрана, под который будут рисоваться все текстуры, фоны, элементы GUI и т.п. Обычно базовый экран берется самый широкоформатный (16:9) и самый большой по разрешению (пикселям), например Full HD — 1920:1080.
Далее надо описать как будет адаптироваться картинка с камеры для экранов с другим соотношением сторон. Обычно для более узких экранов, например 4:3, основная картинка (фон, объекты в игре) обрезаются по ширине, а элементы GUI пропорционально сужаются (масштабируются по ширине).

Что такое сцены в играх — надо объяснять? Сцена — вкратце это совокупность фона и объектов на экране, которые практически полностью заменяются при переходе к новому виду экрана. Например, главное меню является самостоятельной сценой, или игровой уровень, который характеризуется своим фоном, ландшафтом тоже является самостоятельной сценой. В самом движке Unity3D вся игра по сути четко разделена на сцены. В этом разделе надо подробно описать все сцены, которые будут присутствовать в вашей игре и переходы между ними. Обычно делается большой рисунок с квадратиками обозначающими сцены и стрелочками переходов между ними — Граф переходов между сценами или по другому можно назвать Схема всей игры. Далее рассмотрим по какому принципу надо описывать сцены.

План описания сцены:

2.1 Название сцены (Английское название).

2.1.1 Общий вид сцены (как бы скриншот в полное разрешение).
Дать ссылку на файл этого вида.
Этот вид можно элементарно состряпать в фотошопе и он очень важен для программиста чтобы получить полное представление о сцене. Все существенные объекты на сцене помечаются цифрами в белых кружочках или квадратиках для контраста, для дальнейшего описания их.

2.1.2 Объекты на сцене
Здесь описываются все объекты на общем виде сцены, помеченные цифрами. Объекты описываются в следующем порядке:

2.1.2.1 Название объекта (Английское название)
— ссылка на папку, где лежит файл объекта (png или obj и т.п.);
— ссылка на пункт 3 этого ТЗ, где этот объект описывается отдельно еще раз;
— картинка, изображение этого объекта;
— свойства объекта, т.е. его количественные (сила, здоровье, скорость, масса) и строковые (имя, название) характеристики;
— вкратце описывается механика объекта, что он делает и как ведет себя на сцене.

2.1.3 Алгоритмы и механика сцены
Здесь необходимо описать общий алгоритм работы сцены. С чего она начинается, как развивается действие на сцене, как ведут себя объекты на сцене, чем и когда заканчивается сцена. На какие сцены она переходит по окончании.

Следующий большой раздел, который необходим в ТЗ это Объекты игры:

3. Объекты
Фактически это копия описания объектов на сценах, только более систематизированная и полная. Справочник по объектам. Здесь можно подробно описать объекты по группам, описать их свойства и т.п. Привести полное описание ресурсов и файлов, которые относятся к объектам. Подробно описать их поведение и преобразование на сцене, их алгоритмику и механику. Можно дать точную классификацию объектов и сделать иерархическую нумерацию в соответствии с этой классификацией.

4. Дополнительные требования

4.1 Сторы, маркеты.
Торговые площадки на которых планируется продавать и/или распространять игру. Это требует внедрение дополнительного кода, соответствующего требованиям этих маркетов по играм. Как правило тут используются дополнительные плагины для Юнити, которые могут быть платными.

4.2 Монетизация.
За счет чего ваша игра будет приносить вам доход. Либо она будет продаваться за деньги, либо будет бесплатна, но будет содержать в себе встроенную рекламу, которая будет давать отчисления. Как правило тут тоже используются дополнительные плагины для Юнити, которые обычно бесплатные. Но проггер должен и тут попотеть, чтобы разобраться и грамотно встроить код.

4.3 Социалка.
Как известно всем скучно играть в одиночку. Игра может иметь выход в социальные сети, пиарить игроков на стенках. Вести статистику достижений, лидерборды и т.п. Как правило тут тоже используются дополнительные плагины для Юнити, которые обычно бесплатные. Но проггер должен, черт возьми, и тут попотеть, чтобы разобраться и грамотно встроить и отладить код.

Примечание. Все эти дополнительные требования часто по трудоемкости составляют 50% от всей игры.

5. Сетевое взаимодействие.
(опционально для онлайн игр)

Этот раздел присутствует для сетевых игр. Здесь должен быть описан сетевой протокол и многое другое для формализации отношений между программистами сервера и клиента. В данной статье я не буду вдаваться в подробности, ибо они для каждой игры могут быть сугубо индивидуальными.

Unity с нуля: Занятие 1. Установка и первое знакомство

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

  • устанавливать Unity;
  • загружать и использовать ассеты (готовые компоненты игр), экспериментируя и играя в прототипы игр, созданных профессионалами;
  • писать и запускать простейшие скрипты (программы) на языке C# в среде Unity.

Урок 1. Установка и первый запуск Unity

Это урок для тех, кто ни разу не сталкивался с такими сложными профессиональными инструментами.
Устанавливаем бесплатную полноценную версию Unity Personal. Условия использования (подробнее здесь):
«Если годовой оборот вашей компании составляет больше 100 000 $ или же если вам удалось привлечь на разработку более 100 000 $, вы не имеете права использовать Unity Personal, будь то для прототипирования или в иных целях.
Если ваша компания уже использует Unity Plus или Pro, то вы также не имеете права использовать Unity Personal».

Урок 2. Загрузка и использование Standard Assets

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

Примечание: Assets (ассеты) — так называют набор ресурсов проекта, в который входит все, что нужно использовать на сцене игры: спрайты, модели, материалы, текстуры, скрипты и многое другое. Подробнее обо всех этих объектах — в следующих уроках.

В этом уроке показываем, как загрузить в свой проект Standard Assets, как и в каких режимах запустить примеры (прототипы) игр.

Примечание: с 2020 года интерфейс asset.store Unity несколько изменился, но принципы работы остались прежними.


Урок 3. Пишем первый скрипт на C#

Урок для тех, кто никогда не программировал ни на одном объектно-ориентированном языке и не пробовал это делать в Unity.
Пишем традиционный код, который выводит приветствие: Hello, World! С этого начинают все программисты мира.

Введение в программирование C# на Unity

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

Unity поддерживает следующие языки программирования: C# и Javascript. Языки C# и Javascript считаются одними из самых популярных среди программистов. На C# пишутся программы для компьютера, веб приложения, а Javascript активно используется для создания интернет-страниц. В нашем случае:

Установка среды разработки

Чтобы писать скрипты, необходим редактор кода. В комплекте с Unity идет MonoDevelop, так что его не требуется устанавливать отдельно. Другой вариант — использовать Visual Studio — мы рекомендуем ее. Сменить среду разработки можно в настройках: Edit → Preferences, а затем выбери панель External Tools.

Вывод сообщения в консоль Unity

Когда ты напишешь свой первый код и добавишь его в Unity, Unity проверит код и, если в нем нет ошибок, произойдет компиляция.

Консоль (англ. — Console) – это панель в Unity, которая отображает ошибки в коде (отображаются красным значком), предупреждения (отображается желтым значком) и позволяет выводить справочную информацию (белый значок). По умолчанию эта панель отображается в нижней части программы в закладке Console. Если эта панель не отображается на экране, то в главном меню выбери Window → Console.

Чтобы создать скрипт выбери Assets → Create → C# Script. Имя скрипта должно быть обязательно на английском и начинаться с большой буквы. Открой созданный скрипт и напиши:

Скрипт не будет работать до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Ты можешь прикрепить скрипт перетащив его на игровой объект в окно Иерархия или через окно Инспектор выбранного игрового объекта.

Код, который должен вызываться один раз при старте программы, ты можешь написать внутри функции Start(), как в примере выше.

Код, который должен вызываться каждый кадр, ты можешь написать внутри функции Update().

Переменные

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

Переменная — поименованная область памяти, адрес которой можно использовать для осуществления доступа к данным и изменять значение в ходе выполнения программы. Переменные хранят в себе информацию разного типа, эти данные называют значением переменной. Для каждого типа данных есть свой тип переменной. Например:

  1. Целочисленные: int (от –2 147 483 648 до 2 147 483 647), long (от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807).
  2. Символы и строки: char (элемент в кодировке UTF-16), string (последовательность элементов в кодировке UTF-16).
  3. С плавающей запятой (дробные): float (от 1,5 × 10–45 до 3,4 × 1038, с точностью до 7 цифр), double (от 5,0 × 10–324 до 1,7 × 10308, с точностью до 15 цифр).
  4. Логические: bool (значение true или false).

Инициализация переменной

Все переменные в C# должны быть объявлены (инициализированы) до их применения. Например:

Задать значение переменной можно, в частности, с помощью оператора присваивания — знак «=». Кроме того, при объявлении переменной можно сразу задать ее значение. Например:

Переменные численных типов можно складывать, вычитать, умножать и делить:

+ — операция сложения;

— операция вычитания;

* — операция умножения;

/ — операция деления.

А вот так сумму чисел можно вывести в консоль:

Счетчик времени с помощью Time.deltaTime

Практически во всех играх требуется знать сколько времени прошло с момента запуска игры (пример: игры на время). Но в Unity мы можем узнать только сколько прошло времени между кадрами (напоминаю, что игра – это набор кадров, которые быстро меняются. В одну секунду количество таких кадров может достигать 60 и больше).

Чтобы узнать сколько времени прошло между кадрами — используется Time.deltaTime.

Чтобы сделать дробное число целым, ставим перед ним (int).

Позиция объекта

Координаты объекта хранятся в компоненте Transform, свойство — position. Каждая координата имеет тип float. Вот так можно выводить координаты объекта в консоль:

Работу ищет программист на С# в Unity

Ваши вакансии и резюме тоже могут оказаться на Голографике. Для этого присылайте их на editor@holographica.space с пометкой «Работа».

Добрый день! Меня зовут Артём Александрович Посунько. Мне 22 года, и я ищу стажировку на должность программиста C# на Unity. Наиболее заинтересован в разработке проектов виртуальной и дополненной реальности.

О себе

В феврале 2020 года после посещения в Париже выставки Virtuality 2020 я твёрдо решил, что буду заниматься разработкой приложений виртуальной и дополненной реальности.

При помощи видеокурсов и книги Троелсена изучил основы языка C#, основы объектно-ориентированного программирования. После этого приступил к изучению движка Unity. На данный момент полностью изучена книга «Unity в действии» Джозефа Хокинга. Пройдено более 100 уроков с сайта Unity (и продолжаю изучать). Имею базовые навыки работы с Vuforia.

Имею инженерное образование степени бакалавра, Уральский федеральный университет. Живу в городе Екатеринбург.

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

Мои ожидания от стажировки: cтажировку рассматриваю как акселератор навыков разработки. Хочу применить в реальных проектах полученные знания.

Идеальный вариант: стажировка + дальнейшее трудоустройство (могу работать удалённо). Имею возможность пройти стажировку только в августе месяце.

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

Рассмотрю любые предложения, будь то стажировка без перспективы трудоустройства или не в проектах ВР/ДР.

Контакты

Не пропускайте важнейшие новости о дополненной, смешанной и виртуальной реальности — подписывайтесь на Голографику в ВК, Twitter и Facebook!

Другие вакансии и специалисты здесь.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий
Рубрика: Карьера/Образование / Рынок труда