Похожие презентации:
FPSController
1. FPSController
Федорищев Л.А.2. Простая сцена
Создайте новую простую сцену с зеленой платформой и какими-нибудьобъектами, кубиками, например.
3. Standard Assets
В папку Assets проекта добавьте папку Standard Assets4. FPSController
В ассетах найдите папку «Standard Assets». Там в префабах, как показано наслайде, найдите префаб «FPSController». Перетащите его на сцену. И разместите
над зеленой платформой.
5. FPSController
Запустите сцену. Попробуйте «походить» по вашей сцене с помощью клавишWASD и мышки.
6. Стрельба кубиками
Добавьте возможность стрелять кубиками на правую или левую кнопку мышки,как мы это делали в Практике №2.
7. Мишень
Создайте на сцене новый объект – капсулу. Это будет наша мишень!8. Скрипт попадания в цель
Создайте новый c# скрипт HitScript и добавьте в него функцию onCollisionEnterкак показано на слайде. Добавьте этот скрипт нашей мишени – капсуле.
Запустите сцену и постреляйте кубиками в нее. При попадании мишень должна
исчезнуть.
9. Много целей
Создайте из цели префаб. И разместите на сцене несколько целей.10. Подсчет попаданий
Добавьте в интерфейс счетчик сбитых целей. При попадании в цельувеличивайте этот счетчик на экране.
11. Nav Mesh Agent
Сделаем наши мишени двигающимися. Добавьте префабу мишени компонентNavMeshAgent.
12. Agent
Создайте новый скрипт, отвечающий за поведение мишени, как показано наслайде. И добавьте его префабу мишени.
13. Navigation
В редакторе Unity откройте новую панель – Navigation.14. Static платформа
Убедитесь, что платформа, по которой будут перемещаться цели, - статичная (наслайде отмечена «Static»).
Затем перейдите на вкладку Navigation.
15. Navigation Mesh
Создадим Navigation Mesh, который будет использоваться для перемещениянашими объектами. На вкладке Navigation перейдите в раздел Bake (наверху) и
нажмите кнопку Bake. В результате платформа должна покрыться бирюзовой
сеткой как на слайде – это мы создали Navigation Mesh.
16. Двигающиеся мишени
Запустите сцену. Мишени должны двигаться в случайных направлениях.Мишени можно сбивать.
17. Вражеская пуля
Научим наши капсулы-мишени тоже стрелять. Стрелять они будут в нас (вкамеру). Пусть они стреляют шариками. Создайте шарик. Сделайте на его
основе префаб и назовите, например, EnemyBullet. Уберите галочку в поле
UseGravity (как показано на слайде), чтобы пули летели ровно и не падали.
18. Враги тоже умеют стрелять
Научите наши капсулы стрелять по аналогии со стрельбой игрока. Стрелять онидолжны в момент изменения цели передвижения. Так что добавьте в скрипт
Enemy.js порождение «пули»-шарика. И добавьте ему силу движения с
коэффициентом 100. Направление пули – камера.
19. Слой врага
Вероятно, после первого выстрела наш враг (капсула) погибнет сам. Так какстолкнется с собственной пулей (помните, он умирает от наших кубиков). Это
логично, ведь он не знает, чья это пуля. Нас это не устраивает. Сделаем, чтобы
от своих пуль они не умирали. Нажмите на выпадающий список Layer. Там
кнопку Add Layer. Создайте два новых слоя: Player и Enemy. Префабам пули и
капсулы укажите слой Enemy. Игроку (FPSController) и кубику-пуле укажите
слой Player
20. Матрица коллизии
Настроим матрицу коллизии слоев. Зайдите в Project Settings. Потом в Physics.Там уберите галочки в клетках, как показано на слайде. Протестируйте сцену.
Теперь капсулы должны бегать и стрелять в вас, при этом не умирая от своих
пуль.
21. Пуля-самоубийца
Капсулы будут создавать много шариков, летящих в разные стороны. Это можетсказаться на скорости компьютера (через некоторое время он не сможет
обрабатывать все летящие шарики). Поэтому нам надо уничтожать ненужные
пули, когда они уже не имеют шанса попасть в цель. Для этого напишите такой
скрипт, как на данном слайде. В этом скрипте пуля самоуничтожится через 10
секунд. Добавьте этот скрипт пуле-шарику.
22. Здоровье игрока
По аналогии с попаданием кубиков в мишени сделайте попадание пуль-шариковв игрока. Но при попадании в игрока, его не надо уничтожать, у игрока надо
отнять здоровье. Создайте новый скрипт Player.cs, который добавьте объекту
FPSController. В этом скрипте создайте параметр Health (здоровье), с начальным
значением 100. При попадании пули-шарика (которую выпускают враги),
уменьшайте здоровье игрока на 1. Добавьте в интерфейс текстовое поле
HealthText, в котором отображайте текущее количество здоровья игрока.