Создание 3D игр на Unity. Shooter

(1 оценок)
Разработка игр
12:30
13 июня 2023 г.
Наставник не оказывает помощь в обучении
3 990 ₽
Купить сейчас

Nikita Putintsev

Преподаватель-разработчик игр, сайтов, чат-ботов

На этом курсе предлагаю познакомиться с тем, что лежит в основе 3D игр Unity


Чему вы научитесь


  • Созданию костной Humanoid анимации

  • Работе с Ragdoll (тряпичной куклой)

  • Работе с Raycast (лучами для выстрела и др.)

  • Управлению волнами для генерации бесконечной игры, пока жив игрок

  • Созданию UI

  • Созданию одновременного управления как с телефона, так и с компьютера с нуля не используя готовые ассеты.


Требования


Основные инструменты для данного курса - это компьютер, интернет и желание обучиться созданию игр.


Описание

  • В начале каждый начинающий программист задается такими вопросами, как: - "Какой язык программирования выбрать?", - "Какую сферу выбрать в программировании?", поэтому в данном курсе хочу познакомить вас с одним из распространенных и мобильным языком программирования C# на примере создания игр, все мы любим игры, а когда учишься - учиться всегда приятнее в игровой форме.
  • Также в данном курсе надеюсь, что получилось передать информацию простым языком на примерах из реальной жизни, чтобы усваивать ее было в разы легче, так как многие книги написаны на непонятном языке "роботов"
  • Данный курс подойдет, как начинающим в разработке игр, так и продвинутым для расширения кругозора, тем кто желает познакомиться с языком программирования C#, так как язык распространен в разработке не только, как игровой, а также на котором можно перейти на разработку десктопных приложений, серверов и т.д.
  • По окончанию данного курса вы получите навыки работы с движком и языком программирования C#, после которого можете сделать игру самостоятельно опираясь на навыки, которые получили и быть подготовленным к дальнейшему обучению, к примеру во многих компаниях требуются навыки ООП(Объектно ориентированного программирования), знание и применение паттернов, такими как MVC - делается это для того, чтобы работа в команде стала в разы проще и сокращала временные затраты, то есть применять шаблон написания кода, потому что код можно написать всегда по разному, хоть мы и используем команды, предоставленные API(документацией, в данном случае Unity), как говорится "сколько людей, столько и мнений", а в нашем случае "сколько людей, столько и вариантов написания кода", поэтому сначала учимся работать и применять свои идеи в коде, а потом работать в команде, донося свои идеи простым языком. Многие пишут книги, а мы наносим свои идеи холст с помощью единиц и нулей.


  • Я постараюсь вам показать частые ошибки и все подводные камни с которыми вы можете встретиться при разработке 3D графики в Unity.
  • В данном курсе мы познакомимся с одним из известных жанров - Shooter и научимся работать с:


  1. часто используемыми компонентами для объектов, такие как Transform, RigidBody, Collision, Light, AudioSource, AudioListener, в их числе UI: Canvas, Panel, Button, Text
  2. незаменимыми объектами Raycast и Ragdoll
  3. созданием управления Touch, одновременным управлением, как с телефона, так и с компьютера
  4. научимся читать код и красиво его оформлять
  5. скриптами, в основном часто используемыми функциями и командами, такими как Start(), Update(), OnCollisionEnter(), а также научимся создавать свои функции, как с аргументами, так и без
  • Во время этого курса, когда проект будет готов, мы научимся работать с контролем версий с помощью GitHub
  • По окончанию курса вы получите готовый проект со сборкой, который можно выложить в интернет или торговую площадку.


Для кого этот курс:

  • Начинающим разработчикам Unity, как художникам, так и программистам с интересом к компьютерам.
Название Дата/Время Длительность
Создание 3D игр на Unity. Shooter 29 сентября 2023 г. в  Минут(ы)
Презентация курса
Мы узнаем что из себя представляют шутеры, какие они бывают, как их не перепутать с RPG и что лежит в их основе.

1. Создаем проект и пишем первый скрипт для движения.

2. Узнаем чем отличается FixedUpdate от Update.

3. Познакомимся с методами Translate и GetAxis.

1. Пишем код для поворота игрока, пробуем камеру от 3-го лица.

2. Узнаем как сделать ограничение курсора мыши по границам экрана.

3. Создаем настраиваемую чувствительность.

4. Познакомимся с Quaternio.Euler.

1. Исправляем ошибку поворота камеры и игрока по осям

2. Как перемещать игрока с камерой вместе, неужели можно обойтись без кода? От части!

3. Как ограничить поворот? Разработчики дали нам метод Clamp!

1. Подведем итоги.

2. Что нас ждет дальше?

1. Вспомним, что мы делали на прошлом уроке

2. Вспомним, как работает скрипт MouseLook

3. Обсудим план урока

1. Спасибо Adobe за прекрасный сайт Mixamo! Проходим регистрацию и знакомимся с интерфейсом

2. Исследуем раздел анимаций и персонажей

1. Находим нужные анимации

2. Подбираем персонажа

3. Учимся импортировать наши файлы в Unity

4. Где наши материалы? Учимся правильно распаковывать файлы в Unity

Мы прошли нашу часть с прототипом. Прощаемся с капсулой. Да здравствует персонаж!

1. Знакомство с анимациями в Unity, знакомимся с разделом Animator и добавляем на игрока анимации

2. Прежде чем программировать нам нужно составить параметры и состояния

3. Узнаем какие есть состояния bool, int, trigger, string, какой выбрать?

4. Что такое Any State, Entry, Exit?

5. Научимся запекать анимацию. Зачем это надо?

1. Подлкючаем анимации в скрипте, знакомимся с методами параметров анимаций и их аргументами.

2. Создание функции для анимации.

3. Знакомимся с правилом матрешки Объект - компонент/скрипт в инспекторе - свойство и знакомимся с методом GetComponent.

1. Что за свойство Tiling. Добавяем поверхность

2. Чем отличается png и jpg/jpeg

3. Чем отличается Материал от текстуры

4. Проверяем управление игроком

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

3. Обсудим план урока


Спасибо Sketchfab за классный сайт с 3D превью, находим модели и импортируем их в проект

1. Что такое Itch.io?

2. Скачиваем и импортируем оружие для игрока и готовимся к работе с RayCast

3. Рассматриваем скелет нашего игрока и ищем запястье

Размещаем объект оружия в руке у нашего игрока

1. Ищем текстуру для прицела 

2. Настраиваем позицию камеры для RayCast

1. Знакомство с RayCast, выводим сообщения в консоль при попадании луча по объекту

2. Как использовать DrawRay

1. Что будет если луч будет пересекать персонажа

2. Изучим RayCasHit, ray, которым будет стрелять камера и начимся распознавать нужные объекты для стрельбы, которые потом заменим на врагов

3. Что такое ray.origin и ray.direction

4. Добавляем метод GetMouseButton

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

2. Стреляем по мишеням

1. Подводим итоги

2. Планируем следующий урок

Настройка коллизии(Collider) и физики (Rigidbody) игрока

Спасибо Zvukipro.com. Находим звук для выстрела и импортируем звук в Unity

1. Знакомимся с Particle System, настройка

2. Прикрепляем эффект к оружию


1. Что такое SetActive

2. Обращение к переменной из другого скрипта, частичное ООП и первые шаги в нем

3. Несколько выстрелов и заставляем пропадать мишени с карты с помощью метода Destroy

1. Знакомимся с AudioSource

2. Чем опасно сохранять GameObject в public переменную в отличие от префаба?

3. Пишем код для эффекта и звука выстрела

4. Знакомимся с методом Instantiate

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

2. Знакомство с методом AddForce

3. Заполняем сцену объектами

1. Подводим итоги

2. Планируем следующий урок


1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока

1. Разбираемся со времени кадров и временем Unity

2. Запрещаем игроку стрелять пока наш таймер не закончится

1. Добавляем ассеты для будущей карты

2. Знакомимся со SkyBox и импортируем его в проект

Знакомство со SkyBox, какие виды бывают. Добавляем SkyBox на сцену

1. Создание главной 1-ой сцену для будущей игры со врагами

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

3. Размещает ассеты SkyBox и ассеты окружения

4. Редактируем коллайдеры карты

1. Разбираемся с ограничениями игрока

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

1. Знакомство с Terrain Editor. Создание новой карты

2. Узнаем как работают материалы в ландшафте и какие инструменты есть для редактирования

3. Рассмотрим инструменты для добавления травы и деревьев

1. Узнаем как управлять сменой дня и ночи

2. Посмотрим, что же будет если не запечь свет

3. Научимся запекать свет

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока

1. Начнем создание врагов

2. Вернемся к нашему любиому сайту Mixamo.com и найдем персонажа врага с анимациями для наших врагов

3. Импортируем наши файлы в проект

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

2. Разберемся, как работает Any State

Что такое Any State? Теория

1. Во-первых разберемся с тем, что такое Ragdoll и надо ли оно нам?

2. Узнаем, какой один из вариантов есть для написания кода RagDoll, чтобы превратить врага в тряпичную куклу после нескольких попаданий

3. Работаем с циклом for для перебора всех костей врага 

1. Узнаем, что такое RagDoll

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

3. Разбираемся, как проходить циклом for по всем костям с компонентами и свойствами

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока

1. Почему нет таймера в Unity, какая у него альтерантива и нужен ли он вообще?

2. Знакомство с IEnumerator, coroutine и yield

3. Практикуем метод Instantiate для спавна врагов и пополнение списка врагов

1. Разбираем ошибки при спавне зомби

2. Исправляем физику


1. Знакомство с Canvas, Slider, Text

2. Почему у UI компонента нет компонента Transform

3. Что такое якорение для масштабируемого экрана и как его добавить?

1. Разбираемся в библиотеке для UI и как обращаться к свойствам UI элементов

2. Сделаем ограничение жизней, а также сцену с проигрышом на случай если у нас кончатся жизни

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

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока

1. Узнаем, как правильно заполнять переменные GameObject или Prefab

2. Как это можно это автоматизировать

3. Подключим работу перменных их других скриптов, используя ООП

1. Узнаем, как создать объект после смерти врага на его месте

2. Проверка пополнения патронов

1. Узнаем, как выдавать рандомные значения и для чего это может пригодится

2. Вычислим площадь нашей карты

1. Разбираемся какой именно объект мы должны удалить и сделать проверку на количество объектов на сцене

2. Знакомство с методом FindGameObjectsWithTag

1. Подводим итоги

2. Планируем следующий урок

Вспомним, что мы делали на прошлом уроке

Обсудим план урока


1. Разберемся с тем, какой текст и в каком формате будет выводить количество патронов

2. Возьмем обхекты Text и разместим их на холсте

3. Приведем текст в презнетабельный вид

1. Подключаем отображение количества патронов к тексту

2. Научимся искать и загружать свои шрифты

3. Узнаем, как способы вывода текста есть для UI, с помощью двух объектов Text или одного

1. Исправляем ошибку родительских и дочерних объектов

2. Подключаем ООП, создаем связь с другими скриптами

3. Дополняем к тексту оформление картинками

И напоследок добавим часть интерфейса для отслеживания волн, нам также понадобится скрипт, картинка и Text

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока

1. Для чего нам волны если они не добавляют сложности? 

2. Как удерживать интерес игрока к игре?

3. Добавляем жизни и урон для врагов с каждой волной

1. Вычисляем площадь нашей карты

2. Работаем с рандомным числом и используем координаты

3. Создаем новую позицию с помощью Vector3

1. Узнаем чем отличается Panel от Canvas

2. Сделаем кнопки

3. Познакомимся с компонентом Button и событием OnClick

Узнаем, что такое BuildSettings и

почему просто так не будут переключаться сцены(сцены) в игре

1. Подводим итоги

2. Планируем следующий урок

1. Теория про управление игрой со смартфона

2. Также подключим настройки звука к Slider из свойства управления ползунком

Применяем наследование классов. Применяем ООП

1. Добавляем модули к редактору

2. Работаем с настройками в редакторе Unity

3. Какие ошибки бывают с подключением Iphone

4. Рассмторим для каких платформ можно собрать и сделать билд проекта

Что такое интерфейсы и какие они бывают для работы с сенсором

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока

1. Для продолжим нашу практику в сенсорном управлении 

2. Познакомимся с методом Abs

3. Переместим объект с помощью свайпа

1. Применяем метод GetTouch

2. Применим движение камеры от свода или раздвижения двух пальцев


Узнаем что такое Math.Sign Math.Distance и применим ModeTowards
Подводим итоги нашей практики с сенсорным управлением
<p>1. Теперь применяя наши интерфейсы с глобальным или локальным тачем сделаем управление игрока с помощью джойстика</p><p>2. Узнаем как сдлеать ограничение свайпа и движения джойстика на экране с помощью anchoredPosition</p>
Создание джойстика часть 2

1. Подводим итоги

2. Планируем следующий урок

1. Вспомним, что мы делали на прошлом уроке

2. Обсудим план урока


Подключаем позицию джойстика к управлению игрока и поворота камеры


1. Для поворота нам конечно же понадобится второй джойстик

2. Тестируем управление

1. Строим будущие планы на проект

2. Создадим пример второго оружия и рассмотрим какие варианты оружия возможны

3. Подводим итоги и делаем заключающие штрихи

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