Международная школа программирования для детей Unity 2D

Содержание

Слайд 2

Повтор

Повтор

Слайд 3

На прошлом уроке мы познакомились с Unity а так же узнали,

На прошлом уроке мы познакомились с Unity а так же узнали,

что такое компоненты.

Введение

Мы сейчас должны знать 4 компонента

Какие компоненты вы запомнили?

Слайд 4

> Компонент Rigidbody 2D отвечает за физику в 2D пространстве. Масса

> Компонент Rigidbody 2D отвечает за физику в 2D пространстве. Масса

(вес), показатель гравитации, материал и пр.

> Компонент Box Collider 2D отвечает за коллизию (столкновение) двух коллайдеров.

> Компонент Transform есть у всех объектов в Unity. Он отвечает за месторасположение объекта на экране, его размеры и поворот.

> Компонент Sprite Renderer есть у всех видимых на сцене объектов в Unity. Он отвечает за отображение спрайтов (картинок). Цвет, поворот и прочие.

Слайд 5

Также мы написали с вами скрипт, с помощью которого наш персонаж

Также мы написали с вами скрипт, с помощью которого наш персонаж

получил возможность ходить

Введение

Помните ли вы, какую функцию мы использовали, для телепортации нашего персонажа?

Слайд 6

transform.Translate() функция, телепортирующая нашего персонажа в сторону, указанную в скобках.

transform.Translate() функция, телепортирующая нашего персонажа в сторону, указанную в скобках.

Слайд 7

Vector2.left – направление в двумерной системе координат влево y right down

Vector2.left – направление в двумерной системе координат влево

y

right

down

left

up

x

transform.Translate() функция, телепортирующая нашего

персонажа в сторону, указанную в скобках.
Слайд 8

Сегодня на уроке Введение Мы поближе познакомимся с уже знакомыми компонентами

Сегодня на уроке

Введение

Мы поближе познакомимся с уже знакомыми компонентами
Познакомимся с новыми

видами коллайдеров
Реализуем прыжок для нашего игрока
Научим камеру передвигаться за игроком
Узнаем, что такое Префабы и как с ними работать
Слайд 9

Реальность Камера за персонажем… Введение Как правило, в играх камера всегда

Реальность

Камера за персонажем…

Введение

Как правило, в играх камера всегда следует за персонажем,

однако сейчас, наша камера стоит на месте.
Слайд 10

Ожидание Реальность Камера за персонажем… Введение Как правило, в играх камера

Ожидание

Реальность

Камера за персонажем…

Введение

Как правило, в играх камера всегда следует за персонажем,

однако сейчас, наша камера стоит на месте.

Существует множество способов реализации движения камеры за персонажем.
Сегодня мы попробуем самый простой из них.

Слайд 11

Камера за персонажем… Обратите внимание на окно Hierarchy (Иерархия).

Камера за персонажем…

Обратите внимание на окно Hierarchy (Иерархия).

Слайд 12

Камера за персонажем… Обратите внимание на окно Hierarchy (Иерархия). Как мы

Камера за персонажем…

Обратите внимание на окно Hierarchy (Иерархия).
Как мы говорили, в

нём отображаются все объекты на нашей сцене. Однако у него есть и другое применение.
Слайд 13

Камера за персонажем… Обратите внимание на окно Hierarchy (Иерархия). Как мы

Камера за персонажем…

Обратите внимание на окно Hierarchy (Иерархия).
Как мы говорили, в

нём отображаются все объекты на нашей сцене. Однако у него есть и другое применение.
Окно Иерархии позволяет нам узнать, какие объекты находятся внутри других.
Слайд 14

Камера за персонажем… Сейчас мы видим с вами активную сцену. Наша сцена

Камера за персонажем…

Сейчас мы видим с вами активную сцену.

Наша сцена

Слайд 15

Камера за персонажем… Сейчас мы видим с вами активную сцену. В

Камера за персонажем…

Сейчас мы видим с вами активную сцену.
В этой сцене,

5 объектов

Объекты внутри сцены

Слайд 16

Камера за персонажем… Сейчас мы видим с вами активную сцену. В

Камера за персонажем…

Сейчас мы видим с вами активную сцену.
В этой сцене,

5 объектов, мы можем это понять, по отступам, у объектов под сценой.

Отступы

Слайд 17

Камера за персонажем… Сейчас мы видим с вами активную сцену. В

Камера за персонажем…

Сейчас мы видим с вами активную сцену.
В этой сцене,

5 объектов, мы можем это понять, по отступам, у объектов под сценой.
Внутри этих объектов сейчас пусто. Давайте изменим это.
Слайд 18

Камера за персонажем… Зажмите нашу камеру, и перетащите её в нашего персонажа.

Камера за персонажем…

Зажмите нашу камеру, и перетащите её в нашего персонажа.

Слайд 19

Камера за персонажем… Зажмите нашу камеру, и перетащите её в нашего

Камера за персонажем…

Зажмите нашу камеру, и перетащите её в нашего персонажа.
Теперь

наша камера расположена внутри персонажа.
А это значит, что при перемещении нашего персонажа, будет двигаться и камера!
Попробуйте запустить игру!
Слайд 20

Камера за персонажем… И вроде бы всё хорошо, но у вас

Камера за персонажем…

И вроде бы всё хорошо, но у вас не

случалось вот такой проблемы?
Кажется наш персонаж перевернулся, а вместе с ним и камера.
Слайд 21

Камера за персонажем… И вроде бы всё хорошо, но у вас

Камера за персонажем…

И вроде бы всё хорошо, но у вас не

случалось вот такой проблемы?
Кажется наш персонаж перевернулся, а вместе с ним и камера.
Это довольно таки логично, однако, хотелось бы, чтобы такого не происходило.
Решить такую проблему легко, для этого мы вспомним один уже знакомый нам компонент
Слайд 22

Немного о Rigidbody2D C Rididbody2D Мы уже с вами работали, однако

Немного о Rigidbody2D

C Rididbody2D Мы уже с вами работали, однако у

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

Давайте познакомимся с одним из таких свойств!

Слайд 23

Немного о Rigidbody2D Но чтобы найти это свойство, давайте раскроем вкладку

Немного о Rigidbody2D

Но чтобы найти это свойство, давайте раскроем вкладку Constraints

у компонента Rigidbody2D

Нажмите тут

Слайд 24

Немного о Rigidbody2D Но чтобы найти это свойство, давайте раскроем вкладку

Немного о Rigidbody2D

Но чтобы найти это свойство, давайте раскроем вкладку Constraints

у компонента Rigidbody2D
Здесь мы увидим ещё пару свойств Rigidbody: Freeze Position и Freeze Rotation.
Слайд 25

Немного о Rigidbody2D Галочка у Freeze Position запрещает объекту перемещаться по

Немного о Rigidbody2D

Галочка у Freeze Position запрещает объекту перемещаться по оси

x, или y
(Таким образом можно заставить объект парить, не падая на землю)

x

у

Слайд 26

Немного о Rigidbody2D Галочка у Freeze Position запрещает объекту перемещаться по

Немного о Rigidbody2D

Галочка у Freeze Position запрещает объекту перемещаться по оси

x, или y
(Таким образом можно заставить объект парить, не падая на землю)
А вот Freeze Rotation запретит объекту переворачиваться (крутиться).

x

у

z

Ставим галочку

Слайд 27

О коллайдерах… Введение Мы с вами уже знакомы с компонентом Box

О коллайдерах…

Введение

Мы с вами уже знакомы с компонентом Box Collider, однако

самые внимательные могли заметить, что в Unity у нас есть ещё несколько коллайдеров.

Давайте с ними познакомимся!

Слайд 28

Box Collider – Прямоугольный коллайдер. Отлично подходит, если объект, нуждающийся в

Box Collider – Прямоугольный коллайдер. Отлично подходит, если объект, нуждающийся в

коллайдере похож на прямоугольник. Меньше всего затрачивает ресурсы в приложении.
Слайд 29

Box Collider – Прямоугольный коллайдер. Отлично подходит, если объект, нуждающийся в

Box Collider – Прямоугольный коллайдер. Отлично подходит, если объект, нуждающийся в

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

Circle Collider – коллайдер в форме круга. Зачастую используется для круглых, или квадратных спрайтов, чтобы смягчить их углы.

Слайд 30

Box Collider – Прямоугольный коллайдер. Отлично подходит, если объект, нуждающийся в

Box Collider – Прямоугольный коллайдер. Отлично подходит, если объект, нуждающийся в

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

Circle Collider – коллайдер в форме круга. Зачастую используется для круглых, или квадратных спрайтов, чтобы смягчить их углы.

Capsule Collider – коллайдер в форме капсулы. Используется для вытянутых в высоту/ширину персонажей, со смягчёнными углами.

Слайд 31

Edge Collider – Выглядит как ломанная линия. Удобен при повторении особенностей ландшафта

Edge Collider – Выглядит как ломанная линия. Удобен при повторении особенностей

ландшафта
Слайд 32

Polygon Collider – Создаётся автоматически. Повторяет форму спрайта. Является плохим выбором,

Polygon Collider – Создаётся автоматически. Повторяет форму спрайта. Является плохим выбором,

так как ваша игра будет потреблять много ресурсов компьютера/смартфона.

Edge Collider – Выглядит как сломанная линия. Удобен при повторении особенностей ландшафта.

Слайд 33

Polygon Collider – Создаётся автоматически. Повторяет форму спрайта. Является плохим выбором,

Polygon Collider – Создаётся автоматически. Повторяет форму спрайта. Является плохим выбором,

так как ваша игра будет потреблять много ресурсов компьютера/смартфона.

Edge Collider – Выглядит как сломанная линия. Удобен при повторении особенностей ландшафта

Остальные коллайдеры используются редко, поэтому мы пропустим их.

Слайд 34

О коллайдерах… Теперь мы знаем множество новых коллайдеров, и когда их

О коллайдерах…

Теперь мы знаем множество новых коллайдеров, и когда их лучше

применять!

Постарайтесь в будущем самостоятельно решать, какой коллайдер будет лучше для того, или иного объекта!

Слайд 35

Реализация прыжка Теперь давайте научим нашего персонажа прыгать! При перемещении мы

Реализация прыжка

Теперь давайте научим нашего персонажа прыгать!

При перемещении мы используем функцию

transform.Translate() для телепортации игрока.
Однако для прыжка телепортация совершенно не подходит!
Слайд 36

Реализация прыжка Мы не можем постоянно телепортировать игрока вверх, и назвать это прыжком.

Реализация прыжка

Мы не можем постоянно телепортировать игрока вверх, и назвать это

прыжком.
Слайд 37

Реализация прыжка Мы не можем постоянно телепортировать игрока вверх, и назвать

Реализация прыжка

Мы не можем постоянно телепортировать игрока вверх, и назвать это

прыжком.

Вместо этого нам нужно придать нашему персонажу едино разовый толчок.
Ведь когда вы прыгаете, вы отталкиваетесь от земли. То же самое должен сделать ваш персонаж.

Слайд 38

Реализация прыжка В Unity есть компонент, который позволит придавать толчок нашему

Реализация прыжка

В Unity есть компонент, который позволит придавать толчок нашему персонажу,

и мы уже знакомы с ним.
Это Rigidbody 2D, который работает с физикой.

Однако у нас есть одна сложность…

Слайд 39

Реализация прыжка Прыжок мы будем реализовывать в нашем скрипте Move. Однако

Реализация прыжка

Прыжок мы будем реализовывать в нашем скрипте Move.
Однако из скрипта

Move нам нужно как-то передать команду в Rigidbody, чтобы тот активировал толчок.

В решении этой проблемы нам помогут переменные!
Смотрите внимательно!

Слайд 40

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

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

в будущем.
rb – отличное название.

Для начала мы с вами создадим переменную, в которой будем хранить наш компонент Rigidbody 2D.
Для этого создаём публичную переменную, типом данных которой будет Rigidbody2D.

Слайд 41

Реализация прыжка После сохранения скрипта, в нашем компоненте Move появится новая

Реализация прыжка

После сохранения скрипта, в нашем компоненте Move появится новая строчка.


Это наша пустая переменная rb, которой нужно дать значение, ведь по умолчанию она пустая (none).
Слайд 42

Реализация прыжка После сохранения скрипта, в нашем компоненте Move появится новая

Реализация прыжка

После сохранения скрипта, в нашем компоненте Move появится новая строчка.


Это наша пустая переменная rb, которой нужно дать значение, ведь по умолчанию она пустая (none).

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

Слайд 43

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

Сделали? Тогда самое время дополнить наш скрипт.
Для начала добавим переменную, которая

будет регулировать силу прыжка.
Слайд 44

Не запутайтесь с уровнями вложенности! И после этого пишем код для

Не запутайтесь с уровнями вложенности!

И после этого пишем код для реализации

прыжка. Записывать мы его будем в функции Update(), там же, где и создавали перемещение.
Слайд 45

Не запутайтесь с уровнями вложенности! Обратите внимание, для прыжка мы проверяем,

Не запутайтесь с уровнями вложенности!

Обратите внимание, для прыжка мы проверяем, нажал

ли клавишу игрок, а не зажал, с помощью функции Input.GetKeyDown()

GetKey – зажатие клавиши

GetKeyDown – нажатие клавиши

GetKeyUp – отжатие клавиши

Слайд 46

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

Мы нажимаем пробел, и персонаж должен подпрыгнуть.

Обратите внимание, для прыжка

мы проверяем, нажал ли клавишу игрок, а не зажал, с помощью функции Input.GetKeyDown()

GetKey – зажатие клавиши

GetKeyDown – нажатие клавиши

GetKeyUp – отжатие клавиши

Слайд 47

rb.AddForce() обращается к Rigidbody, который мы указали в Unity и придаёт

rb.AddForce() обращается к Rigidbody, который мы указали в Unity и придаёт

ему толчок

Направление и сила прыжка

Тип прикладываемой силы

Слайд 48

Реализация прыжка Если вы сделали все правильно, то ваш персонаж должен

Реализация прыжка

Если вы сделали все правильно, то ваш персонаж должен прыгать,

при нажатии клавиши Space

Не забудьте убедиться, что вы дали значение переменной rb

Слайд 49

Отлично! Теперь у нас есть персонаж, который способен свободно перемешаться по

Отлично! Теперь у нас есть персонаж, который способен свободно перемешаться по

сцене!

Мы уже сейчас можем расставить платформы и сделать простенькую игру платформер!

Слайд 50

Немного о префабах Последнее, что мы сегодня с вами узнаем –

Немного о префабах

Последнее, что мы сегодня с вами узнаем – это

что такое Префабы.

Префаб – это копия какого-либо объекта, сохраняющая все свойства и настройки, которую можно многократно использовать в Unity

Слайд 51

Немного о префабах Наглядно: Представьте, что у нас есть две сцены,

Немного о префабах

Наглядно: Представьте, что у нас есть две сцены, на

которых должен быть один и тот же объект.

Сцена 1

Сцена 2

Слайд 52

Prefab Если сохранить его в префаб, то мы сможем добавить такой

Prefab

Если сохранить его в префаб, то мы сможем добавить такой же

объект и на другие сцены

Сцена 1

Сцена 2

Немного о префабах

Слайд 53

Prefab И если мы захотим изменить в будущем этот объект, то

Prefab

И если мы захотим изменить в будущем этот объект, то достаточно

изменить префаб, или одну из его копий

Сцена 1

Сцена 2

Новый спрайт

Немного о префабах

Слайд 54

Prefab Префабы очень полезны при разработке игр. Они экономят время, однако

Prefab

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

ними нужно работать аккуратно

Сцена 1

Сцена 2

Немного о префабах

Слайд 55

Обычно, для префабов создают отдельную папку в проекте, поэтому давайте так

Обычно, для префабов создают отдельную папку в проекте, поэтому давайте так

и сделаем

Немного о префабах

Создайте папку Prefabs в вашем проекте и откройте её.

Слайд 56

Для создания префаба необходимо перетащить нужный объект из окна Иерархии в

Для создания префаба необходимо перетащить нужный объект из окна Иерархии в

окно Проекта.
Попробуйте создать префаб нашего персонажа.

Немного о префабах

Слайд 57

Для повторного использования просто достаньте эти префабы на сцену. Если у

Для повторного использования просто достаньте эти префабы на сцену.
Если у вас

2 камеры на сцене, вам нужно будет удалить лишнюю.

Немного о префабах

Слайд 58

В будущем мы ещё столкнёмся с префабами и научимся редактировать их,

В будущем мы ещё столкнёмся с префабами и научимся редактировать их,

а пока давайте с вами в качестве домашнего задания создадим вторую сцену и с помощью префабов обустроим её!

Конец урока

Сцена 1

Сцена 2