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

Вопрос школьника по предмету Информатика

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

Ответ учителя по предмету Информатика

Ответ:

Объяснение:

По образцу из статьи по спрайтам, я наделал из них 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 подобран экспериментальным путем замера времени при движении вдоль планки под разными углами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей