2D Клон Angry Birds Unity3d (C#)

 

Все знают этих злых парней. Они пытаются разрушить стены и убить врагов. Игрок натягивает рогатку и запускает птицу. В этом уроке мы создадим графику и напишем код для запуска птиц.

Откройте Unity 3D и создайте новый 2-D проект. Как всегда, спрайты можно найти в Google. Импортируйте их и начнём создавать мир.

Вам потребуется изображение неба для фона, изображение земли, изображение рогатки и изображение птицы. Все изображения кроме рогатки поместите куда хотите. При редактировании спрайтов, установите круг в центре на полосы для обеих частей рогатки (как на рисунке ниже). Это поможет легче создать струну.

Slingshot должен состоять из 2-х изображений для каждой части, потому что птицы будут пролетать между ними, мы поместим их в разном порядке в одном слое.

Создайте #2 (задняя) родителем #1 (передняя) и соедините их вместе. Добавьте Rigidbody2D (с параметром “Is Kinematic”).

С помощью Line Renderer создадим струну рогатки. Итак, добавьте Line Renderer. Вы можете создать материал и использовать его для изменения цвета струны. Нажмите “Parameters” и измените начальную ширину по своему усмотрению. Я использовал 0.06-0.04 для #2 и 0.07-0.05 для #1. #2 немного тоньше из-за перспективы.

Для птицы добавьте Circle Collider 2D и к нему Rigidbody 2D. Создайте 2D Physics Material под названием Friction и перетащите его на материал коллайдера.

  

Нужно добавить коллайдер для земли. Добавьте Box Collider 2D или Edge Collider 2D.

Создайте новый слой и добавьте в него все визуальные элементы, потому что мы должны разместить их по порядку. Должно быть: Sky-0, Back Slingshot-1, Bird-2, Front Slingshot-3. В том же порядке мы создадим струны для каждой из ветвей рогатки.

Давайте напишем какой-нибудь код. Создайте C# скрипт с названием DragBird и откройте его.

Этот код использует Line Renderer для создания струн. Кроме того, мы создали bool переменную, чтобы проверить, щёлкнул ли игрок по птичке. Как вы знаете, игрок нажимает на птицу, перетаскивает и отпускает. Когда вы запускаете птицу, кинематика должна быть отключена.

Функция Dragging() управляет перемещением птицы. Она получает положение мыши и расстояние от рогатки. mousePos.z = 0, потому что мы используем 2D и нам не нужен вектор z.

Функция StringUpdate() обновляет струну. Пока вы перетаскиваете птицу, струны следуют за ней как луч.

Мы вычислили радиус коллайдера птицы, что бы прикрепить струны к её краю. Кроме того, струны отключаются когда птица запускается с velocityX. Прикрепите этот скрипт к птице. Теперь нам нужен скрипт, что бы камера следила за птицей. Создайте C# скрипт CamFollow.

Камера будет следовать за птицей между двумя границами. Вернёмся в Unity и создадим две границы. В качестве границы можно использовать пустой объект и продублировать его.

Попробуем! Добавьте несколько блоков и врагов, что бы уничтожать их.

Скачать исходный код можно здесь.

Оригинал.