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