Продолжим наши онлайн-занятия. Чтобы установить программу, пройти первые шаги - ознакомьтесь с содержанием предыдущих уроков.
Содержание всех постов:
- Вступительный пост
- 1. Обучение разработке на Unity3D. Установка, настройка и описание окон
- 2. Обучение разработке на Unity3D. Написание небольшого шутера. Разбираемся с террейном.
- 3. Обучение разработке на Unity3D. Написание небольшого шутера. Создание персонажа.
Как я и обещал, в этом уроке мы будем создавать врагов, которые будут следовать за игроком. Так как скоро Хеллоуин, то враги будут в виде тыкв :) Я нарыл в интернете бесплатные модельки. Качаем отсюда, двойной щелчок и импортируем в Юнити. После импорта в проекте должна появиться папка Models с нужными нам моделями. Вот наш плохой Джек:
А вот хороший:
Мы будем использовать обе модели и оба Джека у нас будут плохими :)
Давайте подготовим наши модели для использования на сцене. Для этого кликаем ПКМ в окне сцены и выбираем Create Empty. При этом на сцене создастся новый Game Object. Переименуем его в Enemy1. Теперь перетягиваем одну из моделей на наш Enemy1 так, чтобы модель стала потомком:
Если внимательно посмотреть, то мы увидим, что наша модель смотрит назад. Вперед - это вдоль оси z (синяя ось). То есть нам надо повернуть модель на 180 градусов. Выбираем нашу модель внутри Enemy1 и в компоненте Transform выставляем поворот вокруг оси Y 180 градусов:
Смотрите вы на картинку и в редактор и думаете - "Чего это он пишет такое? Синяя стрелочка смотрит же все равно в другую сторону". На самом деле, чтобы понять в какую сторону смотрит модель, нам надо выбрать Enemy1. Дело в том, что в Юнити своя система координат, а в 3Д редакторах может быть другая и при экспорте эти системы могут не совпадать. Частично из-за этого мы и создали сначала пустой объект на сцене, а потом засунули в него модель - чтобы избежать проблем с несовпадением систем координат.
Теперь давайте поместим внутрь источник света, чтобы тыква светилась изнутри. Для этого кликните ПКМ на объекте Enemy1 и выберите Light -> Point Light. Настройте параметры как на картинке внизу:
Теперь мы еще сделаем, чтобы наша тыква немного светилась сама по себе. Для этого нам надо изменить материал тыквы. Выбираем на сцене объект Connect внутри модели, потом в окне инспектора раскрываем параметры материала outside, ставим галочку Emission, меняем цвет как в Albedo, а потом меняем интенсивность на 0.2, как на картинке:
Нам нужно так же добавить на объект Enemy1 компоненты Sphere Collider и Rigidbody. Выбираем Enemy1 на сцене и жмем кнопку Add Component в окне инспектора. Оба этих компонента находятся в разделе Physics. Параметры этих компонентов нужно немного изменить, как на скриншоте:
После всех этих манипуляций наш Enemy1 готов. Нужно создать из него префаб. Давайте сделаем папку для префабов. Кликаем правой кнопкой в окне Project, выбираем Create -> Folder и называем ее Prefabs. После этого перетягиваем Enemy1 со сцены в эту папку. Наш префаб готов. Теперь Enemy1 со сцены можно удалить и проделать те же манипуляции со второй моделью хорошего Джека. Назовите его Enemy2.
После того, как мы подготовили оба префаба, не забываем сохранять проект. Чтобы сохранить, не забываем выбирать File -> Save Project. Ну и сцену тоже сохраняем, не забываем.
Ок, теперь у нас есть враги, которые ничего не умеют, кроме как страшно выглядеть. Давайте заставим их для начала двигаться в сторону игрока. Для этого нам придется немного покодить. Давайте создадим еще одну папку, где будут храниться наши скрипты. Назовем ее Scripts. Правой кнопкой по папке, Create -> C# Script и называем его Enemy.
Дважды щелкаем по скрипту и у вас должна запуститься Visual Studio. Если вдруг у вас запустился Mono Develop и он вам не нравится, это можно изменить в настройках. Идем в Edit -> Preferences, дальше выбираем External Tools и в выпадающем списке выбираем Visual Studio:
В этом уроке мы просто добавим код, который я предоставлю, а в следующем уроке подробно разберем что все это безобразие значит. В скрипте Enemy у вас должно быть следущее:
К сожалению я не разобрался как вставить код, чтобы он выглядел нормально. Так что придется набирать вручную. Это даже полезнее.
После того, как скрипт будет готов, можем перейти обратно в редактор Юнити и перетянуть его на оба наших префаба Enemy1 и Enemy2:
Теперь давайте разместим наших врагов на сцене. Можете перетянуть Enemy1, или Enemy2, или оба на сцену так, чтобы они были на некотором расстоянии от игрока:
Так же нам надо изменить тэг игрока, чтобы враг мог найти игрока на сцене. Для этого выбираем нашего игрока на сцене (FPSController) и ставим ему тэг Player:
Это все, что требуется для того, чтобы враги вас преследовали. Не забываем сохраниться и можно запустить игру. Всем фана :)
Автор поста Алексей, @litovets
Отличное продолжение, поделился. Сын сказал будет пробовать, а по мне так описание супер просто, продолжайте, нам это полезно, имею ввиду тех, кто хочет пробовать и учиться.
Спасибо, что оценили, будут вопросы - задавайте.
Сегодня говорила с ребятами, многие зашли по ссылки на фейсбуке и пробуют, но к сожалению не зарегистрированы на голосе, поэтому мы не можем отслеживать их активность.
Предлагаешь мониторить ребят на ФБ? Они там задают вопросы?
Авторские получил, все супер!
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
vas, max-max, urii, galina1, dimarss, vasilisapor2, olga-olga, semasping, gromozeka, karusel1, sharps, oksana0407, vika-teplo, bag, now, polojayigor, amidabudda, xsen, anr, kr-alexey, makcl, alexko
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
@litovets и ты брут... продался в сообщество vp, ты же сам можешь пробиться, но дело твое, удачи
А почему бы не совмещать? Что в этом плохого?