Найти в Дзене
KbK game studios

Давайте посмотоим на скрипты #1. FPS Input - скрипт движения

Ох, давно у меня не было материалов по програмиированию.... В этой серии статей мы посмотрим на скрипты. Я буду показывать скрипты интересные, большие, чтобы у нас был простор. Если даже вы не разбираетесь ни в С#, ни в программировании в общем, вы поймете, о чем я пишу, ведь я постараюсь "расшифровать" каждую строчку кода. Итак, начнем! Вот так выглядит скрипт в MS Visual C# Первая часть кода Строки 1-3 Это объявление используемых библиотек. О том, что такое библиотека вы можете прочитать в статье "Что такое игровой движок" Строки 5-16 Строки 5-6 Строка 5 добавляет в визуальный редактор Unity тип объекта charController, а строка 6 добавляет тип скрипта controlScript, и заодно заносит наш скрипт в этот тип. Строка семь - начало исполняемой части программы (включая объявление переменных). Строки 8-16 это объявление переменных, необходимых нам. Вторая часть кода Строки 19-22 Это процедура "Start". То, что вложено в нее (между круглыми скобками {}).будет выполнено один раз, при запуске.
Оглавление

Ох, давно у меня не было материалов по програмиированию....

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

Итак, начнем! Вот так выглядит скрипт в MS Visual C#

Первая часть кода
Первая часть кода
Вторая часть кода
Вторая часть кода
Вторая часть кода с нумерацией строк.
Вторая часть кода с нумерацией строк.

Первая часть кода

Строки 1-3

Это объявление используемых библиотек. О том, что такое библиотека вы можете прочитать в статье "Что такое игровой движок"

Строки 5-16

Строки 5-6

Строка 5 добавляет в визуальный редактор Unity тип объекта charController, а строка 6 добавляет тип скрипта controlScript, и заодно заносит наш скрипт в этот тип.

Строка семь - начало исполняемой части программы (включая объявление переменных).

Строки 8-16 это объявление переменных, необходимых нам.

Вторая часть кода

Строки 19-22

Это процедура "Start". То, что вложено в нее (между круглыми скобками {}).будет выполнено один раз, при запуске.

Строка 19 - объявление процедуры

Строка 20 говорит о том, что в переменной charController будет объект со свойством character Controller.

Строка 21 уравнивает переменную с вертикальной скоростью (скорость прыжка/падения) с переменной минимальной скорости падения.

Строки 26-54

Это процедура "Update". Процедура "Update" выполняется каждый кадр.

Строка 26 - объявление начала процедуры

Строки 27-30

Этот фрагмент кода работает с горизонтальным движением (вперед/назад, вправо/влево) Строки 27 и 28 считывают, нажаты ли клавиши wasd/стрелки.

Строки 29-30 высчитывают переменную, в которой хранятся данные о передвижении, основанные на нажатиях клавиш (какая клавиша, продолжительность нажатия)

Строки 32-48

Система вертикального движения (прыжки и падения).

Если игрок находится на земле и была нажата клавиша space (пробел), то вертикальная скорость равна скорость прыжка минус 6 (стабилизирующее число).
Если игрок находится в воздухе (падпает, например), то вертикальная скорость равна ей же да плюс гравитация (получаем ускорение свободного падения. Не забывайте, что мы находимся в Update!)Если при падении мы достигаем максимальной скорости (задана в переменной terminalVelocity), то вертикальная скорость равна максимальной и больше не увеличивается.

Вот и весь смысл строк 32-48)

Строки 48-54

Именно этот фрагмент двигает нашего персонажа. Все предыдущие считывали нажатия клавиш и высчитывалти движение.

Строка 49 сообщает нам о том, что движение по вертикали равняется вертикальной скорости. То, что мы высчитывали в 33-48.

Ну а 51-ая и 52-ая двигают персонажа по горизонтали.

Если у вас остались вопросы, пишите в комментариях. Ни один вопрос не останется без моего внимания.

P.s. Использование данного скрипта в личных и коммерческих целях запрещено.