Делаем Тунца - три!

Прошла неделя и таки продолжаем. Начала здесь: http://pikabu.ru/story/delaem_tuntsa__dva_4503397

Итак, сегодня мы делаем первых врагов и пищу для нашего тюленя. Сразу создадим папку Prefabs и закинем в нее самого Тюленя со сцены, пусть лежит там тоже:

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Затем берем спрайты наших пищи и врагов - это будут медуза и тунец и кидаем их в папку спрайты, потом вытаскиваем на сцену и добавляем каждому из них компонент Polygon Collider 2D, ставим у компонента параметр isTrigger в true. Понадобится он нам чуть позже и не раз.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

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

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Создадим на сцене два пустых объекта и назовем их medusaFactory и tunaFactory - эти объекты будут порождать наших медуз и тунца.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Добавим нашим фабрикам иконки, чтобы мы их видели и расположим их в правой части экрана, за пределами видимости камеры.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Добавим к одной из наших фабрик новый скрипт и назовем его FactoryController.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Вот что будет в том скрипте:

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Добавим уже готовый скрипт и ко второй фабрике и настроим наши значения: Min и Max Time Out будут отвечать за то, какую минимальную и максимальную паузу нужно делать между генерацией объектов, MinY и MaxY за то, где по оси Y генерировать новый объект, ну и Prefab - это наш объект, чтобы задать его, берем в папке Prefabs тунца и тащим его в это поле у tunaFactory, аналогично поступаем и с медузой и medusaFactory.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Далее, добавляем компонент - новый скрипт нашему тунцу, назовем его, скажем, MovingObjectController. И в скрипте том вот что:

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Добавляем этот скрипт и медузе и настраиваем ей и тунцу максимальную и минимальную скорость.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

Теперь, если мы запустим игру, медузы и тунцы начнут появляться и проплывать мимо тюленя справа налево. Однако, как не сложно догадаться, они будут плыть и плыть в никуда. Поэтому создадим еще один пустой объект, который назовем Terminator, поместим его слева за пределами видимости камеры, добавим ему компонент Box Collider, настроим его так, чтобы всё, чтобы проплывало по нашей воде, попадало в этот коллайдер, не забываем выставить isTrigger в true, так же добавляем компонент Rigidbody2D и ставим isKinematic в true и добавляем компонент - новый скрипт, который называем Terminator Controller.

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

А в скрипте этом совсем короткий код, который будет удалять всё, что попадет в коллайдер нашего терминатора:

Делаем Тунца - три! Unity3D, Android, Windows Phone, Gamedev, Игры, Туториал, Длиннопост

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

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

2
Автор поста оценил этот комментарий

всегда интересовало.


есть ли смысл избегать new Vector в Update функци

и есть ли смысл исролзовать пул, для этого


как будет себя вести GC  в случае с множеством new Vector

раскрыть ветку