Слайд 1 Как создать персонажа
В этом модуле поговорим о спрайтах, полигонах и коллайдерах.
А еще о том, как все это перемещать с места на место с помощью физики.
Слайд 3Unity Магазин (Asset Store)
- это растущая библиотека, в которой собраны бесплатные
и коммерческие ассеты, созданные как Unity Technologies, так и членами сообщества. Доступен большой выбор ассетов - текстуры, модели и анимации, примеры проектов, учебники и расширения для редактора. Ассеты доступны через простой интерфейс, встроенный в редактор Unity, через него можно скачать и импортировать непосредственно в ваш проект.
Слайд 4Зайдем в asset store
Вы можете открыть окно Asset Store выбрав в
главном меню Window->AssetStore. При первом посещении вам будет предложено зарегистрировать бесплатный аккаунт, который будет использоваться для доступа к магазину.
Слайд 5Фильтруем поиск на бесплатные 2д ассеты
Слайд 6
Магазин имеет интерфейс браузера, который позволяет искать по словам или просматривать
товары (packages) и категории. В левой части главной панели инструментов находятся знакомые кнопки навигации, для перемещения по истории просмотренных страниц.
Справа от них находятся кнопки просмотра менеджера загрузок и содержимого корзины покупок.
Слайд 7Расположение загруженных ассетов
Вам редко когда понадобится (если вообще понадобится) прямой доступ
к файлам, загруженным через Asset Store. Но, если вам потребуется, вы можете их найти в
~/Library/Unity/Asset Store
..на Mac
..на Windows.
C:\Users\accountName\AppData\Roaming\Unity\Asset Store
Слайд 10В структуре проекта
Создадим папки
Правая кнопка мыши -Create – Folder…
Prefubs (префабы)
Sprites (спрайты)
Scripts
(скрипты с#)
Scene (уровни игры)
Слайд 11Сохраним первую сцену
File – Save Scene as - Save
Слайд 12Если спрайт не порезанный
Окно Inspector
Выбираем Спрайт
В нем - SpriteMode –
single, меняем на multiple
Нажимаем на sprite editor
Нажимаем slice –slice
И все кадры анимации будут отдельными картинками.
Слайд 14Физический компонент твердого тела для 2D спрайтов.
Inspector – Add component –
Physics 2d- Rigidbody 2d
Физические параметры твердого
Тела:
-масса
-гравитация
Слайд 15КЛАСС RIGIDBODY2D
Класс Rigidbody2D по сути обеспечивает в 2D функционал соответствующего 3D
класса. Добавление спрайту компонента Rigidbody2D дает контроль над физическим движком. По сути это означает что спрайт будет подвержен гравитации и, путем добавления к нему сил, сможет контролироваться из скриптов. Добавление соответствующего компонента "коллайдер" позволит спрайту реагировать на столкновения с другими спрайтами. Это поведение целиком обеспечивает физическая система Unity; для реализации эффективного и реалистичного поведения требуется очень мало кода, что позволяет быстро запрограммировать геймплей игры.
Слайд 16Добавление коллайдера
Коллайдер позволяет не проходить объектам друг через друга
Выбераем платформу:
Inspector –
Add component – Physics 2d – BoxCollider 2d
(Прямоугольный коллайдер)
Слайд 17Меняем форму коллайдера
Inspector – Add component – Physics 2d – BoxCollider
2d
(Прямоугольный коллайдер)
Меняем size и offset для более точного совпадания с картинкой
Слайд 18Создание скрипта движения
Assets – Scripts(folder) – Create – C# Script
Выбираем героя
– Inspector – AddComponent – Scripts – выбираем
созданный нами фаил скрипта
Слайд 19Если не открыв. Visual Studio
Если Visual Studio установлена и при установке
вы поставили галочку Unity Tools
Edit-Prefernces-External Tools
Слайд 20Если вы при установке не вкл unity компонент
Открываете Visual Studio
Tools –Extension
and Updates – в окне поиска – unity – в открывшемся окне –
install
Слайд 21C# (произносится си шарп) — объектно-ориентированный, строготипизированный язык программирования.
Разработан в
компании Microsoft.
Окружающий нас мир можно разделить на различные объекты: например,
«кот», «дом» или «дерево»
Для объектов характерны различные свойства, которые помогают четко описать объекты. Их можно сравнить с прилагательными в русском языке. Например, кота можно описать такими свойствами, как рост, окрас, вес и т. д.
Слайд 22Поведение объектов - методы
Объект может выполнять действия. Например, кот вылизывает шерсть
— это действие.
Кот может мурчать, мяукать, кушать и т.д. — это тоже разные действия
Слайд 23Методы Start/Update
В методе старт приписывается логика, которая отрабатывает при запуске
Игры
(до обновления первого кадра(first frame) игры , только если скрипт включен.)
В методе Update обрабатывает изменение в игре каждый временной шаг (несколько миллисекунд)
Update вызывается раз за кадр.
Это главная функция
для обновлений кадров.
Слайд 24Что означает VOID?
Использование слова void перед именем метода означает, что, когда
завершается выполнение метода, возвращается пустое значение, то есть по завершении определенных действий, которые выполняет метод, он никаких значений не возвращает.
Слайд 25Using
Using UnityEngine;
Означает, что мы используем
Билеотеку (.dll)
Движка Unity
Слайд 26Комментарии к коду
// Это однострочный комментарий
/* Это уже многострочный комментарий
многострочный комментарий
*/
Слайд 27Создание переменных
В языке C# имена полей(переменных)
не могут содержать пробелы. Используйте
в именах
только буквы и числа, причем первой всегда ставится буква.
Каждый «тип» обрабатывается компьютером особым образом,
поэтому при определении полей мы должны указывать их тип.
Типы данных
Слайд 28Переменная скорость
Public — модификатор доступа
При объявлении полей так, как показано выше,
мы можем решить, должны ли другие классы иметь к ним доступ. Иногда очень важно делать поля закрытыми (private) — для того, например, чтобы другой класс не помещал неверные значения в поля и не нарушал работу программы.
Использование полей private, protected и public определяет степень защиты объектов класса.
Double — тип данных
Speed — название переменной
= 10,0 — присвоили значение переменной - дробное число
Слайд 29Как повлиял модификатор доступа
В юнити – выбираем персонажа – у нас
появилось в скрипте наша переменная,
И ее значение, которое мы может менять, прямо в редакторе юнити
Если мы уберем модификатор доступа public, то мы не сможешь поменять
значение во время игры, и не будем видеть эту переменную в юнити.
Слайд 30Move
Input.GetAxis(“Horizontal”);
- Присваевается значение нажатой кнопки ‘влево’ – ‘вправо’
Или клавиш ‘a’ ‘d’
(по умолчанию)
Т.е., когда мы нажмем ‘влево’
в переменную move запишется значение, например -1
Слайд 31Изменить значения по умолчанию
Edit – ProjectSettings - Input
Откроется окно в инспекторе
Слайд 32Обратится в коде к твердому телу объекта, чтобы изменять скорость
Для того,
чтобы поменять скорость, нам нужно обратится к твердому телу
нашего объекта – RigidBody2D,
Мы создаем поле типа RigidBody2D, и в методе старт(инициализации)
Вызываем метод GetComponent< Тип который мы хотим получить>();
Слайд 33velocity – пер. с англ. скорость
Обращаемся к созданному нами компоненту, и
присваиваем ему
Vector2 - Эта структура используется для представления двумерных позиций и векторов (например, координаты смещений персонажа).
По Х – движение меняется в зависимости от
скорости , в нашем случае : -1*10
По У - оставляем позицию.
Слайд 34If (условие: …не погладили)
{ то…..сделать ‘мяу’}
Else
{ ….сделать ‘мур’ }
Условные конструкции
Слайд 35Добавим прыжок по клавише вверх
GetKeyUp(Название кнопки) – кнопка на клавиатуре
GetButtonDown(Название кнопки)
– кнопка на мышке
KeyCode.UpArrow –стрелка вверх на клавиатуре
AddForce () – добавили твердому телу – Силу, только по у оси, т.е когда он будет двигаться вверх
Слайд 36Регулируем высоту прыжка
Edit – ProjectSettings – Physics2D , смотрим в инспектор
Меняем
гравитацию у на -30
Чтоб прыжки были меньше
В реальной жизни –
Гравитационное поле Земли — поле силы тяжести, обусловленное тяготением Земли и ... В приблизительных расчётах его обычно принимают равным 9,81;
Слайд 37РУКОВОДСТВО К ЮНИТИ
https://docs.unity3d.com/ru/current/Manual/index.html