Блог онлайн школы Пиксель

Как сделать Шутер на Unity за 30 минут

Привет, друзья! В этом уроке мы создадим 3д шутер на Юнити за кратчайший срок: нам понадобится всего 30 минут! Не верите? Долистайте эту статью до конца, чтобы посмотреть наш урок по Юнити. В нашем шутере можно будет играть от первого лица, давайте скорее начинать!

Для начала нам потребуются стандартные ассеты, которые мы можем скачать в Ассет Стор. Открываем Asset Store, вбиваем в поисковую строку Standard Assets. Создаем Plane. Растягиваем его площадь. В папке Character заходим в первую папку и в папке префаб перемещаем на сцену первый префаб. Так как у персонажа есть камера, основная камера нам не нужна, поэтому удаляем ее. Снова переходим в Ассет Стор, выбираем категории и жмем на Props.


Перемещаем префаб оружия на сцену и настраиваем его расположение.


Если оружие искажено, отражается не полностью, кликаем в иерархии на камеру и в инспекторе в Culling Mask - 0.1.


В иерархии перемещаем оружие в камеру.


Создаем скрипт, в нем объявляем переменные.
  • урон - damage
  • сила стрельбы - fireSpeed
  • объект камеры - cam
  • дальность стрельбы - range


Создаем функцию, в ней объявляем луч. RaycastHit hit.
Пишем if и в нем:
  • Physics.Raycast - это и есть луч. Далее указываем, откуда будет луч исходить. cam.transform.forward - направление луча.
  • out hit - результат выпуска луча.
  • range - ограничиваем выстрел


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


Теперь нам нужно вызвать эту функцию, для этого в Update пишем: если нажали ЛКМ, то вызываем функцию выстрела.


Запускаем и проверяем.


Добавим теперь след от пули, саму пулю и звуки. Объявляем переменные:
  • префаб пули - bull;
  • след от пули - trace;
  • точка спавна - spawnBull;
  • звук - shot;
  • компонент воспроизведения - audioShot;
  • сила force = 310;


И в функции shootGun пишем воспроизведение звука.


Воспроизведение системы частиц (следа от пули).


И спавн пули.


Далее переходим в Юнити, создаем пустой объект в пистолете, это и будет точка спавна, добавляем ей иконку.


Настраиваем расположение, ставим ее в начало дула. Теперь в папке ParticleSystem выбираем префаб Flare и перемещаем так же к дулу. В иерархии систему частиц перемещаем на точку спавна. Снова выбираем систему частиц и настраиваем эффект, нам нужно убрать две галки Looping и Play Awake. Делаем так же и во вложенных объектах частиц. Это позволит проигрывать эффект один раз.
На оружие в инспекторе добавляем компонент AudioSource. Теперь заполняем скрипт:
Cam - добавляем камеру.
Bull - находим в проекте префаб пули.
Trace - добавляем созданый эффект из иерархии.
Spawn Bull - точка спавна.
Shot - нажимаем на кружок и выбираем звук.
AudioShot -  добавляем оружие потому что, на нем есть этот компонент.


Создадим отдельный скрипт для пули и в нем объявлим скорость пули. Далее прикладываем силу и уничтожаем ее через 0.5 секунд. Перемещаем скрипт на префаб пули.


Также на префаб добавляем Capsule collider и ставим галку isTrigger. Теперь создадим новый скрипт, который будет уничтожать объект, в который мы попали.


Нажимаем в окне проекта Юнити на кнопку All prefab, находим любой объект врага. Перемещаем его на сцену. Если на нем есть скрипты, отключаем их, сняв галку. Теперь переместим наш скрипт на врага. Чтобы скрипт сработал, на пулю нужно добавить тег bull. Создаем тег.


И назначаем его префабу пули. Запускаем и проверяем. Далее добавим силу: когда пуля будет попадать в объект, на него будет воздействовать сила. Переходим в скрипт gunManager, где у нас основная функция выстрела. Переменная силы у нас уже объявлена, нам осталось только прописать воздействие. Проверяем, есть ли физика у объекта. Если да, то мы прикладываем силу.


Сохраняем и проверяем.

Вот и все! Если вы хотите поближе познакомиться с разработкой игр на Unity 3D и программированием на языке C#, приходите к нам на курс. Мы в школе "Пиксель" учим детей 10-14 лет разбираться во всех инструментах Юнити, писать скрипт на Си Шарп, создавать многоуровневые сложные игры. Присоединяйтесь!

2021-09-26 19:46 Бесплатные видеоуроки Unity для детей