Оглавление
- Онлайн-школа Пиксель
- Кнопки воспроизведения
- Лучший учебник по платформеру для Unity
- Онлайн школа обучения IT профессиям «ItProger»
- Настройка триггеров
- ТУСУР
- Структура моноповедения
- Открытое образование
- Обнаружение столкновений
- Уроки для начинающих
- Graphical Design
- Туториалы от Flatingo
- Coursera
- ITVDN
- Что такое Unity
- Онлайн образование «Отус»
- С чего начать?
- Управление игровыми объектами
- Работа со скриптами
- Хорошие ресурсы для разработки игр в Unity
- Добавление объекта
- Raycasting
- Подведение итогов
Онлайн-школа Пиксель
Возраст: от 10 до 14 лет
Сайт: https://edu.clubpixel.ru/unityТелефон: +7 (495) 150-59-65Стоимость: 3000 — пробный курс из 4 занятий, 9000 — модуль из 12 занятий
Разработчик игр на Unity. Программирование на C#
Программа курса
Ваш ждут модули по 12 занятий с разным уровнем сложности.
1 модуль | Unity — основы создания 2D игр
Курс Unity предназначен для того, чтобы ребенок взглянул на игры со стороны инженера-разработчика, познакомился с терминами и классификацией игр. Настройка объектов, префабов, анимации, программирование – являются основными задачами, которые должен решить разработчик игр.
План модуля:
- Знакомство с Unity. Подготовка объектов к размещению на сцене. Основные определения
- Система координат, первые объекты, первый программный код
- Настройка камеры. Ошибки при настройке камеры. Слежение за объектом
- Компоненты объектов, настройка компонентов
- Настройка анимации, программирование анимации
- Настройка пользовательского интерфейса в игре
- Настройка звуковых эффектов
- Настройка видеоклипа
- Настройка и создание меню игры
- Создание игры
2 модуль | Unity — основы создания 3D игр
Мир игр — абсолютно безграничный мир! Чтобы создать 3D-игру нужны знания не только в области программирования и моделирования объектов, а также в области дизайна уровней, дизайна интерфейсов, анимировании объектов, звукорежессировании. Курс предназначен для того, чтобы ребенок оценил возможности программы Unity при создании 3D-игр.
План модуля:
- 3D объекты
- Разновидность 3D-объектов, компоненты и свойства. Префабы
- Движение 3D объектов
- Текстуры, материалы
- Камера и освещение
- Roll and Ball
- Создание собственного ландшафта
- Настройка управления от первого лица
- Настройка и создание меню игры
- Настройка UI
- Собственная 3D игра
3 модуль | Unity — игровая реальность
Изучая этот модуль, дети загрузят в среду Unity готовый набор ассетов. С помощью них разберутся с разновидностями игр и познакомятся с ними поближе. Узнают, какие объекты присутствуют в играх, смоделируют физику объектов, проявят дизайнерский вкус и соберут игры в свою коллекцию!
План модуля:
- Автомобильный симулятор
- Стайлинг
- Управление автомобилем
- 3D -шутер
- Управление 3D шутера
- Создание собственной карты для 3D шутера
- Авиационный симулятор
- Управление самолетом
- Полет и посадка
- Вспомним 2D трансформер
- Самостоятельная сборка трансформера
- Сборка всех игр курса
Кнопки воспроизведения
Кнопки воспроизведения (Play Buttons) позволяют запускать и останавливать игру. Первая кнопка — кнопка воспроизведения:
Несколько вещей происходят, когда вы нажимаете кнопку Play. Сначала ваша игра запустится, как и ожидалось. Набор кнопок также станет синим, чтобы показать, что игра находится в движении.
Интерфейс Unity затемнится, чтобы показать, что игра активна.
Помните, что любые изменения, которые вы делаете при запущенной игре, будут потеряны, как только вы остановите игру.
Далее следует кнопка Пауза:
Она позволяет сделать паузу и вносить изменения в игру.
Как и в режиме запущенной игры, эти изменения будут потеряны, как только вы остановите игру. Редактирование GameObjects во время игры и паузы — это система читинга и балансировки, которая позволяет вам экспериментировать с игрой, не опасаясь навсегда ее сломать.
Наконец, последняя кнопка Step:
Она позволяет вам шаг за шагом проходить игру. Это удобно, когда вы хотите наблюдать анимацию по кадрам, или когда вы хотите проверить состояние определенных GameObjects во время игры.
Лучший учебник по платформеру для Unity
Томас Браш, разработчик Pinstripe и очень ожидаемой Once Upon A Coma, делится своими знаниями в этом всеобъемлющем руководстве по созданию платформера в Unity. Опираясь на десятилетний опыт, он разбивает каждый элемент на понятный язык, идеально подходящий для начинающих.
Учебное пособие посвящено импорту слоев из Photoshop в Unity и созданию эффекта параллакса, воплощающего его в жизнь. Он показывает, как правильно визуализировать сцену, импортировать персонажа игрока и передать функциональность игры через код. Томас создал множество учебных пособий на своем канале YouTube, а также быстрые советы о жизни разработчика игр.
Онлайн школа обучения IT профессиям «ItProger»
Программа рассчитана на новичков, которые хотят войти в сферу построения игр. За программу вы изучите разработку как 2D, так и 3D игр при помощи движка Unity и языка C#.
Вы пройдете все этапы построения игр, научитесь работать в Unity, писать C# скрипты, добавлять анимацию и рекламу в игры, а также загрузите вашу игру в Google Play и App Store.
Что будет в курсе:
- Большая база знаний. На протяжении 2 месяцев вам предстоит пройти 85 уроков, что состоят из теоретических и практических лекций. Общая продолжительность которых более 41 часа.
- Каждый новый модуль открывается по времени в 19:00. У вас будет достаточно времени чтобы пройти все уроки, а также выполнить домашние задания, прежде чем переходить к новому модулю.
- К каждой лекции есть задания, которые вам предстоит отправлять на проверку. Также на самом сайте вы найдете сотни тестовых и более 200 практических заданий на вкладке «Тесты и практика».
- Каждый ученик получает поддержку как со стороны лектора, так и со стороны наставника. Все вопросы можно задавать напрямую через специальную форму на сайте.
Навыки:
- Знание языка C#
- Создание Windows программ на C#
- Работа с БД C# и БД Unity
- Разработка мобильных 2D проектов
- Разработка 3D проектов в Unity
- Создание анимации в Unity
- Публикация в Google Play и App Store
- Разработка AR приложений
- Внедрение монетизации в игры
- Навыки создания простого ИИ
Настройка триггеров
Для понимания сути триггеров важно усвоить, что такое коллайдер (Collider). Это компонент, который присваивается объекту в пространстве игры, задает форму и делает его твердым, недоступным для прохождения сквозь него
Например, если мы разместим монетку в 2D-пространстве и захотим сделать так, чтобы она упала на платформу, то без использования компонента Collider ничего не получится — монетка пролетит сквозь платформу.
Поэтому обоим объектам необходимо присвоить компонент Box Collider 2D — это тонкая зеленая линия, которая обводит элементы по контуру, и за счет этой рамки они становятся твердыми, то есть один не может пройти сквозь другой.
Так объекты обязательно соприкоснутся и монета встанет на платформу.
Триггер (Trigger) — это пространство на карте, при попадании объекта в которое происходит действие; он тоже обводит объект или область в пространстве по краям. По сути, это тот же коллайдер, только триггер позволяет объектам проходить внутрь этой области. Представьте, что на ту же самую платформу вместе с коллайдером наброшен триггер, и при попадании персонажа внутрь триггерной области активируется телепорт — персонажа перебрасывает в другую точку карты.
Чтобы создать триггер, нужно накинуть тот же самый компонент коллайдера, но поставить галочку Is Trigger.
Триггеры распознают три варианта взаимодействия области на карте и объекта:
- OnTriggerEnter — объект зашел в зону;
- OnTriggerStay — объект находится в зоне;
- OnTriggerExit — объект покинул зону.
ТУСУР
Курс — для начинающих разработчиков компьютерных игр. Это отличный способ начать свою карьеру геймдевелопера. В процессе обучения вы научитесь создавать свои игровые приложения легко и быстро, используя современные технологии в области графики и звука.
Unity — это полноценный игровой движок, рассчитанный на то, что весь процесс разработки (кроме подготовки контента и скриптинга) будет происходить в поставляемом комплекте (в Unity3D интегрировано большое количество мощных вспомогательных средств, связанных с проектированием и дизайном). Работать в Unity просто и удобно, интерфейс дружелюбен и интуитивно понятен.
Пакет Unity 3D позволяет создавать игры и интерактивные приложения для любых платформ и устройств – будь то компьютер, игровая приставка или смартфон. Игру можно запустить прямо на веб-странице в браузере. Так вы сможете оживить ваш сайт, блог или форум.
Плюсы Unity:
- Кроссплатформенность — поддерживаются Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 и XBox 360.
- Современный уровень графики (есть deferred освещение, встроенный редактор шейдеров, стандартный набор постпроцессинговых эффектов.
- Физический движок — PhysX.
- Полноценное 3D в браузере! Скорость и сложность разработки обычной браузерной казуалки на ней не выше, чем на Flash, а графическое превосходство — налицо.
Да и wow-эффект! Яркий пример — Джаггернаут отечественных разработчиков (IT Territory LLC под эгидой mail.ru). Мощь и невероятные способности движка Unity3D позволили этой игре моментально завоевать огромную армию поклонников по всему миру.
В конце концов, на Unity можно делать сайты, презентации, визуализировать научные проекты. Все это можно было написать используя существующие средства, но в Unity в разы быстрее и качественнее.
Пройдя обучение, вы овладеете техникой создания современных компьютерных игр, получите необходимые практические навыки перспективной профессии разработчика игровых приложений.
В процессе обучения, от простого к сложному, вы пройдете все этапы разработки игр на движке Unity3D, создадите свои первые игровые проекты, научитесь создавать и использовать модели персонажей, работать со спрайтами и текстурами, размещать реалистичные источники освещения, проектировать ландшафты, траву и деревья, научитесь использовать звук в игре, создавать спецэффекты на основе системы частиц, использовать всю мощь встроенной в Unity3D библиотеки физики игровых объектов.
В процессе обучения под руководством опытного преподавателя вы не только создадите собственную полноценную компьютерную игру, но и узнаете как наиболее эффективно монетизировать ваши произведения.
Структура моноповедения
Ключевые функции
Все компоненты наследуются от класса MonoBehaviour. Он включает в себя несколько стандартных методов, главное:
- void Start (), который вызывается всякий раз, когда объект, содержащий скрипт, создается в сцене. Это полезно в любое время, когда мы хотим выполнить некоторый код инициализации, например. установить экипировку игрока после того, как он появится в матче.
- void Update (), который вызывается каждый кадр. Это то место, где будет выполняться основная часть кода, включающего пользовательский ввод, обновляющего различные свойства, такие как движение игрока в сцене.
Переменные инспектора
Часто мы хотим сделать компоненты максимально гибкими. Например, все оружие может иметь разный урон, скорострельность, has_sight и т. Д. Хотя все оружие, по сути, одно и то же, мы можем захотеть иметь возможность быстро создавать различные вариации с помощью редактора единства.
Другой пример, когда мы можем захотеть это сделать, — это создание компонента пользовательского интерфейса, который отслеживает движения мыши пользователя и помещает курсор в область просмотра. Здесь мы можем захотеть контролировать чувствительность курсора к движениям (если пользователь использовал джойстик или геймпад, а не компьютерную мышь). Таким образом, имеет смысл сделать эти переменные легко изменяемыми как в режиме редактирования, так и поэкспериментировать с ними во время выполнения.
Переменные в окне инспектора можно изменить в любой момент во время выполнения или в режиме редактирования. Примечание. Изменения, внесенные во время выполнения, не будут постоянными.
Мы можем сделать это легко, просто объявив их как общедоступные переменные в теле компонента.
Обратите внимание, как мы можем сделать переменные с разными уровнями доступа, частными, общедоступными или общедоступными, но не отображаемыми в окне инспектора
Принятие пользовательского ввода
Конечно, мы хотим, чтобы наша игра реагировала на ввод пользователя. Наиболее распространенные способы сделать это — использовать следующие методы в функции Update () компонента (или в любом другом месте, которое вам нравится):
- Input.GetKey (KeyCode.W) Возвращает True W, удерживается клавиша W
- Input.GetKeyDown (KeyCode.W) Возвращает True при первом нажатии клавиши W.
- Input.GetAxis («Вертикальный»), Input.GetAxis («Горизонтальный») Возвращает значение между -1,1 перемещения мыши при вводе.
Открытое образование
Курс посвящен изучению разработки игр с помощью движка Unity. По окончании курса вы сможете осуществить мечту любого геймера: создать игру по собственному сценарию.
Если вы давно хотели научиться разрабатывать игры, генерировать идеи, создавать концепцию и собственных персонажей, то этот курс станет для вас хорошим стартом на пути к работе в GameDev.
Для успешного прохождения курса, необходимо знание языка программирования C#, а также крайне желателен хотя бы базовый уровень английского.
В состав курса входят видеолекции, видеопрезентации, интерактивные формы обучения в формате видеоконференций. Длительность курса составляет 10 недель. Трудоемкость курса – 3 зачетные единицы. Средняя недельная нагрузка на обучающегося – 10 часов.
Результаты обучения:
- Знание на уровне представлений алгоритмов, методов и средств обработки информации, применяемых при анализе научно-технической информации, отечественного и зарубежного опыта по тематике исследования.
- Знание на уровне представлений основ объектно-ориентированного программирования, синтаксиса языка программирования C#.
- Знание на уровне воспроизведения инструментальных средств разработки, доступных у платформы Unity.
- Знание на уровне воспроизведения назначений и основных свойств стандартных элементов Unity.
- Умения теоретические собирать эмпирический материал, опираясь на современные источники, осуществлять сбор, анализ научно-технической информации, отечественного и зарубежного опыта по тематике исследования.
- Умения практические реализовывать базовые алгоритмические конструкции на языке программирования C#.
- Владение навыками самостоятельного проведения библиографической работы с привлечением современных электронных технологий.
- Владение навыками работы с интегрированной средой разработки, которая позволяет реализовывать разработку проекта.
Обнаружение столкновений
Ранее мы упоминали компоненты Collider и Rigidbody, которые можно добавить к объекту. Правило для столкновений состоит в том, что один объект в столкновении должен иметь твердое тело, а другой — коллайдер (или оба имеют оба компонента). Обратите внимание, что при использовании raycasting лучи будут взаимодействовать только с объектами, к которым прикреплены компоненты коллайдера. После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами
После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами.
Следует отметить, что твердые тела обеспечивают физику, такую как гравитация, для объектов, поэтому, если вы хотите отключить это, вам нужно будет включить is_kinematic .
Установите флажок «Кинематика», чтобы отключить нежелательную физику, но сохранить хорошее обнаружение столкновений.
Уроки для начинающих
В авторском блоге размещены подборки обучающих видеоматериалов по IT. Предмет обзора отражен как в бесплатных мини-курсах, так и в отдельных тематических видео-уроках.
Серия «Юнити-уроки для начинающих» представляет пятую версию движка. На девяти занятиях пользователи изучат принципы создания и выбор объектов, игровую механику, проигрыш, главное меню, динамику, эффекты, нюансы добавления рекламы. В курс включен познавательный урок «Реальный доход и статистика».
Цикл «2D-игра на Unity-5» состоит из 20 видеороликов. Ментор обещает научить писать скрипты, работать в Юнити, создавать мобильный игровой продукт. По окончании у юзеров будет готов гейм-проект, который можно попробовать загрузить в App Store и Google Play.
Graphical Design
155 бесплатных видео насчитывается в тематическом плейлисте на канале Graphical Design. Каждый из уроков посвящен определенной функции движка или примеру его использования.
Среди изучаемых тем – «2D-платформер», «2D-свет», «движение по клику в 3D», «отслеживание персонажа», «спрайт-маска», «эффект воды», «ускорение персонажа», «диалоги», «сбор и накапливание кристаллов», «локализация», «рестарт уровня» и др. Интересен и мини-курс «U-C#-ООП», где рассматриваются вопросы наследования, свойств, методов и циклов.
Туториалы от Flatingo
На ютуб-канале инди-разработчика выложены обучающие материалы для тех, кто разделяет увлечение автора
По интересующей дисциплине внимание заслуживают подборки «U-уроки» или «Создание игр на Unity3D, рисование 2D-графики».
В первом случае юзеров ждут ознакомительные ролики, во втором собраны видеоуроки, мастер-классы с демонстрацией процесса работы, лайфхаки по недопущению ошибок, советы по продвижению и др.
Coursera
Бизнес, IT, наука о данных, иностранные языки – области, в которых международный образовательный сервис Coursera предлагает онлайн-программы ведущих мировых вузов и предприятий.
Специализация «Game Design and Development», представлена университетом штата Мичиган (США). Контент – теоретическая база и практические рекомендации по производству видеоигр с использованием Unity-5. Потребители научатся разрабатывать концепцию, прототипировать и тестировать идеи, ориентироваться в лицензировании и маркетинге. Партнером является известный портал онлайн-игр, который предоставляет шанс для старта и монетизации начинающим профи. Наличие субтитров (в том числе и на русском) помогает с восприятием англоязычных наставников.
ITVDN
Бесплатный видеокурс «Введение в U и основы программирования» обеспечивает стартовыми знаниями для вхождения в сферу геймдева. Юзеры разберутся с устройством редактора и его функциями, узнают об отличиях класса от объекта.
Юнити отлично подходит начинающим мастерам, так как позволяет быстро создать объекты и построить сцену, используя свой контент или предложения библиотек. Некоторые возможности движка будут интересны и крупным «игроделам», которые производят продукт более высокого класса.
— Курсы по геймдизайну и разработке игр
— Обучение созданию игр с нуля
— Курсы по Unreal Engine
Что такое Unity
Unity — это и среда разработки, и игровой движок, с помощью которого создаются проекты для разных платформ: ПК, мобильных устройств, игровых консолей и интернет-платформ, — поэтому он называется кроссплатформенным. В Unity есть инструменты для создания объектов, их перемещения, работы с графикой, текстурами и звуком, поэтому сделать полноценную игру с его помощью можно даже в одиночку.
Наглядный пример игры, созданной на Unity, которая поддерживает разные устройства, — , успешный мультиплатформенный проект китайской студии miHoYo Limited. Более популярной стала ее мобильная версия, но пользователи могут войти в аккаунт, например, с компьютера и продолжить играть с того же момента, на котором остановились в мобильной версии. Кроме Genshin Impact, на Unity созданы такие известные проекты, как Hearthstone, Outlast, Cuphead, Pokemon GO и многие другие.
В игровой индустрии существуют десятки разных движков. Одни разработаны под конкретную игру, на других можно делать игры конкретного жанра (шутеры от первого лица, платформеры, гонки), а есть универсальные, вроде Unity, которые открывают разработчикам больше возможностей. Уникальность Unity заключается в сочетании нескольких факторов. Кроме того, что этот движок позволяет создавать проекты под разные устройства и не ограничивает разработчика конкретным жанром, он:
- имеет практически неограниченный бесплатный функционал;
- не требует глубокого знания языков программирования для создания первых простых проектов;
- имеет многочисленное и активное сообщество, в котором можно найти ответ на любой вопрос, потому что среди такого большого количества людей кто-то обязательно уже сталкивался с вашей проблемой.
Онлайн образование «Отус»
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения.
В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
На курсе вы освоите разработку игр на Unity на примере создания 3-х игр:
- создание простой анимации
- Unity UI
- система частиц
- воспроизведение звука
- Tilemap
- 2D-физика
- On- Screen Joystick и Joystick
- Управление камерой с помощью Cinemachine
- создание многопользовательской игры
- освоите 3D — физику и terrain
- Navigation Mesh
- Photon Unity Networking и др.
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование. Возможность пройти вступительное тестирование повторно появится только через 2 недели.
С чего начать?
Первым шагом этого урока является загрузка Unity. Но подождите — есть четыре разные версии. Какую из них выбрать?
Все версии Unity предоставляют одинаковые функции движка
- Personal: бесплатно
- Plus: $ 40 / мес
- Pro: $ 150 / мес
Существует также версия Enterprise, в которой ваши пользовательские потребности определяют стоимость подписки.
Наиболее заметное различие между этими версиями заключается в том, что игры, созданные с помощью персональной версии, должны начинаться с заставки Unity, тогда как любая из платных версий позволяет либо удалить заставку, либо создать собственную.
Кроме того, существуют различные сервисы внутри Unity, такие как Cloud Build и Analytics, которые становятся доступными в платных версиях.В Unity есть несколько строгих правил о том, как вы можете использовать персональную версию. Перед тем, как приступить к работе, обязательно ознакомьтесь с FAQ по Unity, чтобы узнать, имеете ли вы право его использовать.
Для выполнения этих уроков достаточно персональной версии, поэтому нажимаем на кнопку начать. Это приведет вас к странице загрузки, на которой нужно принять условия использования и загрузить установщик.
Запустите установщик и следуйте инструкциям на экране. Дождитесь завершения установки и запустите Unity Hub. Вам будет предложено создать учетную запись.
Создав учетную запись, запустите Unity. Нажмите File-New Project чтобы создать новый проект.
- 1. Назовите свой проект Spaceship и выберите место на жестком диске, чтобы сохранить его.
- 2. Вы заметите, что у вас есть несколько вариантов выбора шаблонов. Каждый шаблон предварительно настраивает Unity, чтобы сэкономить ваше время в зависимости от того, что вы хотите сделать. Сейчас выберите 3D.
- 3. Нажмите Create, и Unity откроет ваш первый проект.
Управление игровыми объектами
Когда у нас есть пользовательский ввод, мы хотим, чтобы GameObject в нашей сцене отреагировал. Мы можем рассмотреть несколько типов ответов:
- Перевод, вращение, масштаб
- Создать новые GameObjects
- Отправка сообщений существующим GameObject / компонентам
Трансформации
Все GameObjects имеют свойство transform, которое позволяет выполнять различные полезные манипуляции с текущим игровым объектом.
Вышеупомянутые методы довольно понятны , просто обратите внимание, что мы используем gameObject в нижнем регистре для ссылки на GameObject, которому принадлежит этот конкретный экземпляр компонента. В общем, рекомендуется использовать локальное , а не глобальное положение / поворот объекта. Обычно это упрощает перемещение объектов разумным образом, поскольку ось локального пространства будет ориентирована и центрирована на родительском объекте, а не на мировом начале координат и направлениях x, y, z
В общем, рекомендуется использовать локальное , а не глобальное положение / поворот объекта. Обычно это упрощает перемещение объектов разумным образом, поскольку ось локального пространства будет ориентирована и центрирована на родительском объекте, а не на мировом начале координат и направлениях x, y, z.
Преимущества локального пространства станут немного более очевидными с диаграммой!
Если вам нужно преобразовать между локальным и мировым пространством (что часто бывает), вы можете использовать следующее:
Как вы понимаете, за этим стоит довольно простая линейная алгебра, на которую намекает «Обратный» в имени метода.
Создание новых игровых объектов
Поскольку GameObjects — это в основном все в вашей сцене, вы можете иметь возможность генерировать их на лету. Например, если у вашего игрока есть какая-то пусковая установка для снарядов, вы можете захотеть создавать снаряды на лету, у которых есть собственная инкапсулированная логика для полета, нанесения урона и т. Д.
Сначала нам нужно ввести понятие префаба . Мы можем создать их, просто перетащив любой GameObject в иерархии сцены в папку с ресурсами.
Как выглядит префаб на вкладке Asset
По сути, это хранит шаблон объекта, который только что был в нашей сцене, со всеми теми же конфигурациями.
Пример пользовательского объекта-кирпича, который используется для динамического создания кубиков Lego в сцене, к нему прикреплен набор компонентов с различными значениями по умолчанию.
Когда у нас есть эти сборные компоненты, мы можем назначить их переменным инспектора (как мы говорили ранее) для любого компонента в сцене, чтобы мы могли создавать новые GameObject, как указано в сборке, в любое время.
Затем мы можем выполнить «создание экземпляра» префаба и манипулировать им в желаемом месте сцены и установить необходимые родительские отношения.
Работа со скриптами
За поведение игровых объектов отвечают присоединенные к ним компоненты (Components). Базовый компонент любого объекта — Transform, он отвечает за положение элемента в окне Scene, возможность поворачивать и масштабировать его. К базовому компоненту можно добавить, например, Renderer, который меняет цвет, или RigidBody, который отвечает за массу и физику объекта. Но кроме базовых компонентов, объектам можно задавать особые условия, и для этого как раз используются скрипты.
Создать новый скрипт можно в окне Project, кликнув мышкой на Assets –> Create –> C# Script.
Двойным кликом мыши скрипт открывается в текстовом редакторе. Скрипты, как и все остальное в Unity, прописываются на С#, так что для создания сложных проектов разработчикам все же придется освоить этот язык.
Базовые элементы скриптов — это:
- using — элемент в коде, который подключает библиотеки;
- public class — в этой строке обычно прописан класс MonoBehaviour, он содержит набор функций, необходимых для работы скрипта;
- void — те самые функции, с их помощью прописываются действия, происходящие в игре.
Рассмотрим, например, функцию start. Любое действие в ней произойдет только один раз, когда запустится игра. Пропишем здесь print (“Hi”).
И можно заметить, что в консоли это слово выводится один раз.
Функция update — повторяющаяся, ее можно использовать, например, для передвижения объекта. Для этого в скрипте задается переменная int i = 0, она выводится на экран с помощью функции print (i) и увеличивается на одну единицу за каждый шаг с помощью i++.
В консоли можно будет заметить, что апдейт действительно срабатывает каждый фрейм и объект, к которому применен этот скрипт, плавно движется.
Хорошие ресурсы для разработки игр в Unity
Сообщество разработчиков игр — одно из лучших среди всех, и в индустрии есть множество высококвалифицированных профессионалов, которые размещают контент бесплатно или почти бесплатно. В этой области требуются 3D-моделисты, концептуальные художники, геймдизайнеры, программисты и так далее. Я связал несколько отличных общих ресурсов, с которыми я столкнулся, для каждого из этих полей ниже:
Watch this video on YouTube
Watch this video on YouTube
Watch this video on YouTube
Концептуальное искусство
- Школа дизайна Фэн Чжу (более 90 часов уроков по концепт-арту)
- Тайлер Эдлин Арт (Великое арт-сообщество BST с отзывами профессионалов о ежемесячных испытаниях)
- Art Cafe (Интервью и мастер-классы с известными концепт-художниками)
- Трент Канюга (иллюстратор и 2D-художник, который также создает свою собственную игру)
3D моделирование
- CG Cookie (лучшие основы моделирования сетки в Blender, у них есть множество другого отличного контента для блендера)
- Тор Фрик (модельеры и скульпторы твердых поверхностей в Blender)
- Глеб Александров (Краткие мощные уроки по рендерингу в Blender)
Игровой дизайн
- DoubleFine Amnesia Fortnight (разработчики игр, которые проводят двухнедельный хакатон и записывают весь процесс проектирования)
- Инструментарий GameMakers (изучает принципы игрового дизайна)
Программирование
- Handmade Hero (Написание игры и движка с нуля на C)
- Джонатан Блоу (инди-разработчик, транслирующий свою разработку игры)
- Brackeys ( хорошие учебные пособия по Unity)
Добавление объекта
Объекты на экран Scene можно добавить из Asset Store. Для этого на панели инструментов нужно кликнуть на вкладку Window –> General –> Asset Store.
В строке поиска можно по названиям найти нужные компоненты, например, сет Free Platform Game Assets.
Как и другие ассеты, он загружается с помощью кнопки Import.
Перед загрузкой появится список всех компонентов, которые содержит этот пакет; некоторые из них можно исключить. Если в списке есть персонажи, текстуры или другие элементы, которые вам не нужны, можно просто снять галочки, и пакет загрузится без них.
После установки все ассеты будут доступны в окне Project. Теперь можно комбинировать и перемещать эти объекты, менять их форму, причем сделать это можно с помощью мыши или горячих клавиш, не написав ни одной строчки кода. Например, из перечня платформ самых разных видов можно выбрать одну и мышкой перетащить ее в рабочую область.
Шаг 2. Перенести в область Scene
Raycasting
Возможно, вы слышали об этом раньше, когда люди сравнивают игры FPS, основанные на «физике» или «на основе лучей». Raycasting по сути похож на лазерную указку, которая при соприкосновении с «коллайдером» или «твердым телом» возвращает «попадание» и передает детали объекта.
Есть два сценария, в которых это может пригодиться (вероятно, их гораздо больше):
- Если вы разрабатываете систему оружия для игры, вы можете использовать raycasting для обнаружения попаданий и даже настроить длину луча, чтобы предметы ближнего боя «поражали» только на коротких дистанциях.
- Создайте луч от указателя мыши к точке в трехмерном пространстве, то есть если вы хотите, чтобы пользователь мог выбирать юниты с помощью мыши в стратегической игре.
Пример 2, подробно описанный выше
Как видите, код для этого немного сложнее. Ключевой момент, который нужно понять, это то, что для того, чтобы направить луч туда, куда указывает мышь в трехмерном пространстве, требуется преобразование ScreenPointToRay. Причина этого в том, что камера визуализирует трехмерное пространство как двумерное окно просмотра на экране вашего ноутбука, поэтому, естественно, существует проекция для переноса обратно в трехмерную.
Подведение итогов
К счастью или к сожалению, прохождение собеседований — это отдельный навык, который по моему мнению, не имеет ничего общего в решении боевых задач. Он даст двум сторонам первое впечатление друг о друге, но не более. Для того, чтобы понять, насколько компания подходит вам, и вы подходите компании, существует испытательный срок. А это уже совсем другая история…
Как и любой другой навык, прохождение собеседований нарабатывается, как не удивительно, прохождением собеседований! Главное — покажите на максимум те навыки, которыми уже обладаете. И помните, если вы провалили собеседование или получили отказ, это может значить две вещи: или вам нужно еще поучиться, или вы банально не подходите этой компании, этому проекту, этой вакансии… Это IT, слышал, тут так бывает. Удачи на собеседовании!