Как научить персонажа в unity 3D ходить дайте скрипт пожайлуста

0 голосов
73 просмотров

Как научить персонажа в unity 3D ходить дайте скрипт пожайлуста


Информатика (21 баллов) | 73 просмотров
Дан 1 ответ
0 голосов

Ответ:

Объяснение:

По образцу из статьи по спрайтам, я наделал из них 2 атласа текстур и собрал 2 дерева смешивания: на передвижение шагом и бегом, назвав их соответственно Move и Run. Одновременно с этим добавив 2 булевых переменных с аналогичным названием и настроив переходы между деревьями по образцу из этой статьи.

Подготовленный Animator Controller.

Подготовленный Animator Controller.

Подготовив всю анимацию, давайте проверим, идет ли переключения между деревьями? Немного доработаем наш код, добавив 2 строчки:

Изменения отмечены красным цветом.

Изменения отмечены красным цветом.

Проверяем...Вуаля, переход между деревьями ничем не отличается от перехода между двумя обычными анимациями. Теперь же давайте подготовим наш объект к перемещению. Для начала давайте добавим к нему компонент по нажатию кнопки Add Component в окне инспектора и выбрав по пути Physics 2D\ Rigidbody 2D. Оттуда же накинем Circle Collider 2D. Т.к. я делаю изометрическую 2D RPG, то дополнительно в настройках Rigidbody 2D параметр Gravity Scale задаем 0, чтобы мой персонаж не падал вниз.

Теперь уже в скрипте добавляем парочку переменных для передвижения нашего персонажа:

Начинаем потихоньку задумываться о передвижении.

Начинаем потихоньку задумываться о передвижении.

После давайте создадим метод FixedUpdate, отличающего от метода Update тем, что он срабатывает только тогда, когда надо обработать саму физику в игре, а не каждый кадр в отличии от Update. Также в той части кода, где мы реагировали на нажатия левой клавиши Shift добавим изменение коэффициента ускорения при беге:

Движение через метод Rigidbody2D.velocity.

Движение через метод Rigidbody2D.velocity.

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

(56 баллов)