Unity. Создание персонажа. Спрайты, полигоны и коллайдеры

Содержание

Слайд 2

Создали проект

Создали проект

Слайд 3

Unity Магазин (Asset Store) - это растущая библиотека, в которой собраны

Unity Магазин (Asset Store)

- это растущая библиотека, в которой собраны бесплатные

и коммерческие ассеты, созданные как Unity Technologies, так и членами сообщества. Доступен большой выбор ассетов - текстуры, модели и анимации, примеры проектов, учебники и расширения для редактора. Ассеты доступны через простой интерфейс, встроенный в редактор Unity, через него можно скачать и импортировать непосредственно в ваш проект.
Слайд 4

Зайдем в asset store Вы можете открыть окно Asset Store выбрав

Зайдем в asset store

Вы можете открыть окно Asset Store выбрав в

главном меню Window->AssetStore. При первом посещении вам будет предложено зарегистрировать бесплатный аккаунт, который будет использоваться для доступа к магазину.
Слайд 5

Фильтруем поиск на бесплатные 2д ассеты

Фильтруем поиск на бесплатные 2д ассеты

Слайд 6

Магазин имеет интерфейс браузера, который позволяет искать по словам или просматривать

Магазин имеет интерфейс браузера, который позволяет искать по словам или просматривать

товары (packages) и категории. В левой части главной панели инструментов находятся знакомые кнопки навигации, для перемещения по истории просмотренных страниц.
Справа от них находятся кнопки просмотра менеджера загрузок и содержимого корзины покупок.
Слайд 7

Расположение загруженных ассетов Вам редко когда понадобится (если вообще понадобится) прямой

Расположение загруженных ассетов

Вам редко когда понадобится (если вообще понадобится) прямой доступ

к файлам, загруженным через Asset Store. Но, если вам потребуется, вы можете их найти в

~/Library/Unity/Asset Store

..на Mac

..на Windows.

C:\Users\accountName\AppData\Roaming\Unity\Asset Store

Слайд 8

Скачать ассет

Скачать ассет

Слайд 9

Структура проекта

Структура проекта

Слайд 10

В структуре проекта Создадим папки Правая кнопка мыши -Create – Folder…

В структуре проекта
Создадим папки
Правая кнопка мыши -Create – Folder…
Prefubs (префабы)
Sprites (спрайты)
Scripts

(скрипты с#)
Scene (уровни игры)
Слайд 11

Сохраним первую сцену File – Save Scene as - Save

Сохраним первую сцену

File – Save Scene as - Save

Слайд 12

Если спрайт не порезанный Окно Inspector Выбираем Спрайт В нем -

Если спрайт не порезанный

Окно Inspector
Выбираем Спрайт
В нем - SpriteMode –

single, меняем на multiple
Нажимаем на sprite editor
Нажимаем slice –slice
И все кадры анимации будут отдельными картинками.
Слайд 13

Нарисуем платформу

Нарисуем платформу

Слайд 14

Физический компонент твердого тела для 2D спрайтов. Inspector – Add component

Физический компонент твердого тела для 2D спрайтов.

Inspector – Add component –

Physics 2d- Rigidbody 2d

Физические параметры твердого
Тела:
-масса
-гравитация

Слайд 15

КЛАСС RIGIDBODY2D Класс Rigidbody2D по сути обеспечивает в 2D функционал соответствующего

КЛАСС RIGIDBODY2D

Класс Rigidbody2D по сути обеспечивает в 2D функционал соответствующего 3D

класса. Добавление спрайту компонента Rigidbody2D дает контроль над физическим движком. По сути это означает что спрайт будет подвержен гравитации и, путем добавления к нему сил, сможет контролироваться из скриптов. Добавление соответствующего компонента "коллайдер" позволит спрайту реагировать на столкновения с другими спрайтами. Это поведение целиком обеспечивает физическая система Unity; для реализации эффективного и реалистичного поведения требуется очень мало кода, что позволяет быстро запрограммировать геймплей игры.
Слайд 16

Добавление коллайдера Коллайдер позволяет не проходить объектам друг через друга Выбераем

Добавление коллайдера

Коллайдер позволяет не проходить объектам друг через друга

Выбераем платформу:
Inspector –

Add component – Physics 2d – BoxCollider 2d
(Прямоугольный коллайдер)
Слайд 17

Меняем форму коллайдера Inspector – Add component – Physics 2d –

Меняем форму коллайдера

Inspector – Add component – Physics 2d – BoxCollider

2d
(Прямоугольный коллайдер)
Меняем size и offset для более точного совпадания с картинкой
Слайд 18

Создание скрипта движения Assets – Scripts(folder) – Create – C# Script

Создание скрипта движения

Assets – Scripts(folder) – Create – C# Script
Выбираем героя

– Inspector – AddComponent – Scripts – выбираем
созданный нами фаил скрипта
Слайд 19

Если не открыв. Visual Studio Если Visual Studio установлена и при

Если не открыв. Visual Studio

Если Visual Studio установлена и при установке

вы поставили галочку Unity Tools
Edit-Prefernces-External Tools
Слайд 20

Если вы при установке не вкл unity компонент Открываете Visual Studio

Если вы при установке не вкл unity компонент

Открываете Visual Studio
Tools –Extension

and Updates – в окне поиска – unity – в открывшемся окне –
install
Слайд 21

C# (произносится си шарп) — объектно-ориентированный, строготипизированный язык программирования. Разработан в

C# (произносится си шарп) — объектно-ориентированный, строготипизированный язык программирования. Разработан в

компании Microsoft. 

Окружающий нас мир можно разделить на различные объекты: например,
«кот», «дом» или «дерево»
Для объектов характерны различные свойства, которые помогают четко описать объекты. Их можно сравнить с прилагательными в русском языке. Например, кота можно описать такими свойствами, как рост, окрас, вес и т. д.

Слайд 22

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

Поведение объектов - методы

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

— это действие.
Кот может мурчать, мяукать, кушать и т.д. — это тоже разные действия
Слайд 23

Методы Start/Update В методе старт приписывается логика, которая отрабатывает при запуске

Методы Start/Update

В методе старт приписывается логика, которая отрабатывает при запуске
Игры

(до обновления первого кадра(first frame) игры , только если скрипт включен.)
В методе Update обрабатывает изменение в игре каждый временной шаг (несколько миллисекунд)
Update вызывается раз за кадр.
Это главная функция
для обновлений кадров.
Слайд 24

Что означает VOID? Использование слова void перед именем метода означает, что,

Что означает VOID?

Использование слова void перед именем метода означает, что, когда

завершается выполнение метода, возвращается пустое значение, то есть по завершении определенных действий, которые выполняет метод, он никаких значений не возвращает.
Слайд 25

Using Using UnityEngine; Означает, что мы используем Билеотеку (.dll) Движка Unity

Using

Using UnityEngine;
Означает, что мы используем
Билеотеку (.dll)
Движка Unity

Слайд 26

Комментарии к коду // Это однострочный комментарий /* Это уже многострочный комментарий многострочный комментарий */

Комментарии к коду

// Это однострочный комментарий
/* Это уже многострочный комментарий

многострочный комментарий
*/
Слайд 27

Создание переменных В языке C# имена полей(переменных) не могут содержать пробелы.

Создание переменных

В языке C# имена полей(переменных)
не могут содержать пробелы. Используйте

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

Каждый «тип» обрабатывается компьютером особым образом,
поэтому при определении полей мы должны указывать их тип.

Типы данных

Слайд 28

Переменная скорость Public — модификатор доступа При объявлении полей так, как

Переменная скорость

Public — модификатор доступа
При объявлении полей так, как показано выше,

мы можем решить, должны ли другие классы иметь к ним доступ. Иногда очень важно делать поля закрытыми (private) — для того, например, чтобы другой класс не помещал неверные значения в поля и не нарушал работу программы.
Использование полей private, protected и public определяет степень защиты объектов класса.
Double — тип данных
Speed — название переменной
= 10,0 — присвоили значение переменной - дробное число
Слайд 29

Как повлиял модификатор доступа В юнити – выбираем персонажа – у

Как повлиял модификатор доступа

В юнити – выбираем персонажа – у нас

появилось в скрипте наша переменная,
И ее значение, которое мы может менять, прямо в редакторе юнити
Если мы уберем модификатор доступа public, то мы не сможешь поменять
значение во время игры, и не будем видеть эту переменную в юнити.
Слайд 30

Move Input.GetAxis(“Horizontal”); - Присваевается значение нажатой кнопки ‘влево’ – ‘вправо’ Или

Move

Input.GetAxis(“Horizontal”);
- Присваевается значение нажатой кнопки ‘влево’ – ‘вправо’
Или клавиш ‘a’ ‘d’

(по умолчанию)
Т.е., когда мы нажмем ‘влево’
в переменную move запишется значение, например -1
Слайд 31

Изменить значения по умолчанию Edit – ProjectSettings - Input Откроется окно в инспекторе

Изменить значения по умолчанию

Edit – ProjectSettings - Input

Откроется окно в инспекторе

Слайд 32

Обратится в коде к твердому телу объекта, чтобы изменять скорость Для

Обратится в коде к твердому телу объекта, чтобы изменять скорость
Для того,

чтобы поменять скорость, нам нужно обратится к твердому телу
нашего объекта – RigidBody2D,
Мы создаем поле типа RigidBody2D, и в методе старт(инициализации)
Вызываем метод GetComponent< Тип который мы хотим получить>();
Слайд 33

velocity – пер. с англ. скорость Обращаемся к созданному нами компоненту,

velocity – пер. с англ. скорость

Обращаемся к созданному нами компоненту, и

присваиваем ему
Vector2 - Эта структура используется для представления двумерных позиций и векторов (например, координаты смещений персонажа).
По Х – движение меняется в зависимости от
скорости , в нашем случае : -1*10
По У - оставляем позицию.
Слайд 34

If (условие: …не погладили) { то…..сделать ‘мяу’} Else { ….сделать ‘мур’ } Условные конструкции

If (условие: …не погладили)
{ то…..сделать ‘мяу’}
Else
{ ….сделать ‘мур’ }

Условные конструкции

Слайд 35

Добавим прыжок по клавише вверх GetKeyUp(Название кнопки) – кнопка на клавиатуре

Добавим прыжок по клавише вверх

GetKeyUp(Название кнопки) – кнопка на клавиатуре
GetButtonDown(Название кнопки)

– кнопка на мышке
KeyCode.UpArrow –стрелка вверх на клавиатуре
AddForce () – добавили твердому телу – Силу, только по у оси, т.е когда он будет двигаться вверх
Слайд 36

Регулируем высоту прыжка Edit – ProjectSettings – Physics2D , смотрим в

Регулируем высоту прыжка

Edit – ProjectSettings – Physics2D , смотрим в инспектор

Меняем

гравитацию у на -30
Чтоб прыжки были меньше

В реальной жизни –
Гравитационное поле Земли — поле силы тяжести, обусловленное тяготением Земли и ... В приблизительных расчётах его обычно принимают равным 9,81;

Слайд 37

РУКОВОДСТВО К ЮНИТИ https://docs.unity3d.com/ru/current/Manual/index.html

РУКОВОДСТВО К ЮНИТИ

https://docs.unity3d.com/ru/current/Manual/index.html