Похожие презентации:
Презентация_9_–_Персонаж_и_оружие
1.
Разработка игрна Unity
Урок 9
Персонаж и оружие
2.
Персонаж и оружие | Урок 9План курса. Модуль 2 – Жанр «3D-аркада»
8
Подготовка игры
12
Персонаж и урон
9
Персонаж и оружие
13
Доработка игры
10
Двери между уровнями
11
Искусственный интеллект
3.
Ставь + в чат,если хорошо видно и слышно
4.
Персонаж и оружие | Урок 9Какая Розовая Пантера ты сегодня? =)
1
4
2
5
3
6
5.
Викторина!Давайте вспомним предыдущий урок =)
Переходим на сайт с викториной по ссылке,
которую отправит преподаватель
6.
Персонаж и оружие | Урок 9Сегодня на уроке
✸
Узнаем, как правильно двигать объекты
✸
Создадим объект при помощи скрипта
✸
Создадим управляемого персонажа
✸
Реализуем механику стрельбы
7.
Движение объектов8.
Персонаж и оружие | Урок 9Методы передвижения
Сейчас мы знаем 2 метода передвижения:
Translate и AddForce. Они работают как в 2D,
так и в 3D.
Посмотрим, как двигаются два объекта с
компонентом Rigidbody при помощи обоих способов.
Оранжевый – Translate
Зеленый – AddForce
Мы постепенно увеличиваем скорость для оранжевого
9.
Персонаж и оружие | Урок 9Что же произошло? Почему оранжевый пролетел
сквозь стену, а зеленый нет?
Translate двигает компонент Transform объекта, и
уже потом за ним двигается все остальное, в том
числе и Rigidbody
AddForce двигает компонент Rigidbody, и уже потом
все остальные компоненты
10.
Персонаж и оружие | Урок 9Компоненту Rigidbody не все равно на физические законы, и он
крайне против того, чтобы один физический объект мог
застревать в другом или проходить сквозь него.
Но когда мы двигаем компонент Transform (которому все равно
на физику), то сначала физический объект двигается, а затем
Rigidbody просчитывает, что он не может находиться в стене, и
толкает объект обратно. Поэтому и создается эта тряска.
11.
Какой же вывод можно сделать из этого?Какие объекты и чем лучше двигать?
12.
Персонаж и оружие | Урок 9Еще немного про физику
Физика в Unity обрабатывается не каждый кадр. То
есть если у вас, допустим, 60 FPS, то физика может
просчитываться только в 40-50 кадрах.
Справа сравнивается обычный FPS, и в какие из этих
кадров обрабатывается физика
Сколько раз обрабатывается физика при 20 FPS
13.
Персонаж и оружие | Урок 9Событийный метод Update срабатывает каждый кадр. Но что будет,
если мы пропишем там движение физики? Физика все равно не
будет обрабатываться каждый кадр.
Все, что мы делаем с физическими объектами, надо писать в
событийном методе FixedUpdate. Этот метод срабатывает строго в
те кадры, когда обрабатывается физика.
14.
А что будет, если Translate написать внутри FixedUpdate?Перестанет ли он трястись и проходить сквозь стену?
15.
Персонаж и оружие | Урок 9Создаем объект через скрипт
Для создания объекта внутри Unity существует
метод Instantiate. Как аргумент он может получить
несколько параметров, которые определяют:
1) Что мы создаем
2) Где мы это создаем
3) Как оно будет повернуто
4) Внутри какого объекта оно будет
Вопрос: а где может пригодиться данный метод?
16.
Персонаж и оружие | Урок 9Аргумент – это данные, которые мы подаем методу
и с которыми он может что-то сделать. Пишется в
скобках.
Практически все методы принимают
аргументы. Например, внутри скобок после
метода Destroy мы должны указать, что
именно мы уничтожаем.
А после метода AddForce мы должны
указать, в каком направлении мы движемся
и, через запятую, какой вид силы применяем
17.
Персонаж и оружие | Урок 9Скрипт стрельбы
Создадим скрипт, который будет спавнить пули –
Shoot.
7 – переменная объекта-пули, которую будем
спавнить
8 – переменная трансформа, точка, где будем
спавнить
12 – проверка одного нажатия на кнопку мыши.
(0 в скобках означает ЛКМ, 1 – ПКМ, 2 – колесико)
14 – спавним объект. В скобках указываем ЧТО
спавним, ГДЕ появляется, какой ПОВОРОТ
[SerializeField] GameObject bullet;
[SerializeField] Transform shootPoint;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(bullet, shootPoint.position,
bullet.transform.rotation);
}
}
18.
Персонаж и оружие | Урок 9Создание объектов
Чтобы воспользоваться скриптом, надо:
1)
Создать на сцене объект пули, сделать
его размеры 0.1, назвать Bullet
2)
Добавить Rigidbody и поместить этот
объект в окно Project
3)
На сцене создать пустой объект и
назвать ShootPoint
4)
Поместить скрипт на него и заполнить
переменные
19.
Персонаж и оружие | Урок 9Вот что будет, если запустить игру и нажимать ЛКМ.
Получился отличный спавнер! Но до стрельбы еще кое-чего не хватает…
20.
Персонаж и оружие | Урок 9Запуск пуль вперед
Теперь надо сделать так, чтобы после спавна снаряд
сразу же толкало вперед. Сделать это можно уже
знакомым нам методом AddForce.
9 – скорость пули
15 – сохраняем созданный объект в переменную,
чтобы можно было обратиться к нему
17,18 – забираем компонент Rigidbody и толкаем в
направлении вперед (forward)
[SerializeField] GameObject bulletPrefab;
[SerializeField] Transform shootPoint;
[SerializeField] float power;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
GameObject newBullet = Instantiate(bulletPrefab, shootPoint.position,
bulletPrefab.transform.rotation);
newBullet.GetComponent<Rigidbody>().AddForce(shootPoint.forward
* power * Time.deltaTime, ForceMode.Impulse);
}
}
21.
Персонаж и оружие | Урок 9Теперь новосозданные пули летят вперед (вдоль
синей стрелки в окне scene)
22.
ПерерывСыграем в игру?
23.
Персонаж и оружие | Урок 9Самоуничтожение пуль
Пули врезаются в объекты и не уничтожаются. А
если мы стрельнем в небо, то пуля будет постоянно
лететь и загружать компьютер. Поэтому создадим
скрипт BulletController и прикрепим на префаб(!!!)
пули.
9 – удаление с таймером. На первом месте
аргумента указываем, что удалить, на втором –
через сколько секунд
12, 14 – при соприкосновении с чем-либо удаляем
пулю
void Start()
{
Destroy(gameObject, 3);
}
private void OnCollisionEnter(Collision collision)
{
Destroy(gameObject);
}
24.
Персонаж и оружие | Урок 9Где искать готовые скрипты
Хоть мы и программируем игры, мы не должны все
создавать сами. Некоторые механики уже создали
сотни раз, и иногда лучше воспользоваться чужими
наработками, чтобы сэкономить время.
Однако, это не значит, что мы не должны понимать,
как та или иная механика работает!
Так, например, мы можем найти в AssetStore много
скриптов на передвижение. Стоит лишь вбить в
поисковик First Person Controller
25.
Персонаж и оружие | Урок 9Если поставить в параметрах бесплатные ассеты, то
найдем несколько интересных вариантов. Все эти
ассеты предоставляют по сути готовое решение
управления персонажем от первого лица.
Большинство из них довольно сложные даже в
настройке, поэтому возьмем Mini First Person
Controller. Скачем и импортируем его
26.
Персонаж и оружие | Урок 9Mini First Person Controller
Зайдем в папку с ассетом.
Перейдем в папку Scripts и увидим 3 файла:
1) Папка с дополнительными фичами для игрока
2) Скрипт вращения камерой
3) Скрипт передвижения объекта через кнопки
Далее изучим содержимое папки Components:
1) Скрипт кувырка
2) Скрипт добавления звуков
3) Скрипт проверки, стоим ли на земле
4) Скрипт прыжка (работает только с 4 скриптом)
5) Скрипт приближения камеры
27.
Персонаж и оружие | Урок 9Игрок на месте
Перетащите игрока на сцену. Лучше всего
перетащить вторую версию, т.к. там есть сразу все
механики для управления.
Помимо всего прочего, удалите основную камеру,
потому что в игроке она и так будет. А две камеры
не могут одновременно показываться, поэтому
нужно контролировать этот момент
28.
Персонаж и оружие | Урок 9Совмещаем стрельбу
Перед тем как добавлять стрельбу, стоит добавить
пушку, из которой будем стрелять.
Ее можно скачать из ассет стора или сделать при
помощи примитивов.
Выбирайте оружие, подходящее под тематику
вашего проекта. Мы скачаем что-то
минималистичное и космическое:
29.
Персонаж и оружие | Урок 9Установка оружия
Поместите оружие перед игроком. С той стороны,
куда смотрит камера.
Камеру можно убрать немного назад, а оружие
уменьшить, чтобы оно не было слишком огромным.
30.
Персонаж и оружие | Урок 9Совмещаем стрельбу
Переместите ваше оружие внутрь камеры, а не
игрока. Только так оно будет поворачиваться
привычным для нас образом.
Для стрельбы не хватает одного: пустого объекта на
краю пушки, из которого будет происходить
выстрел. Создайте его внутри пушки и поместите
немного дальше дула.
Добавьте скрипт стрельбы на персонажа и
настройте его так же, как вы делали ранее:
31.
Персонаж и оружие | Урок 9Отлично! Теперь у нас есть оружие, которое стреляет, и игрок, который
управляется. В следующий раз добавим врагов, которые будут отличной
мишенью
32.
Персонаж и оружие | Урок 9Рефлексия
Сегодня я:
Понял, что…
Смог…
Узнал о…
33.
Персонаж и оружие | Урок 9Сегодня мы с вами
Узнали, как правильно двигать объекты
Создали объект при помощи скрипта
Создали управляемого персонажа
Реализовали механику стрельбы
34.
Время вопросов!35.
Персонаж и оружие | Урок 9На следующем уроке
Размещаем двери между комнатами
Добавляем механику открывания и закрывания
дверей по кнопке
Скачиваем звуки и учимся их воспроизводить в своей
игре
36.
Персонаж и оружие | Урок 9Домашнее задание
✸
Реализуйте механику стрельбы и перемещения персонажа,
если не успели на уроке
✸
Потренируйте скорость печати на английском языке
на тренажере
37.
Словарь терминовУчим новые слова!
Аргумент – это данные, которые мы подаем функции и с которыми она может что-то сделать. Пишется в
скобках.
38.
Словарь английских словУчим новые слова!
Force |fɔːrs| – сила, мощь
Shoot |ʃuːt| – стрелять
Bullet |ˈbʊlɪt| – пуля
Gun |ɡʌn| – ружье, оружие
First person |fɜːrst ˈpɜːrsn| – от первого лица