У изображения и столкновения разные задачи
Видимый спрайт показывает героя, но сам не определяет физическую границу. За форму столкновения отвечает Collider2D, а Rigidbody2D задаёт участие объекта в физической симуляции. Для героя, который должен реагировать на гравитацию и столкновения, в этом учебном варианте используется динамическое тело. Размер коллайдера стоит проверить отдельно от прозрачных полей изображения. Если визуально ноги касаются пола, а физическая форма заканчивается выше, наблюдение за одной картинкой будет вводить в заблуждение.
Не давайте двум механизмам спорить за движение
Динамическое тело перемещается физической системой. Если одновременно постоянно переставлять его через Transform, управление может конфликтовать с ожидаемым физическим поведением. Выберите согласованный способ движения через возможности двумерного тела. В стандартном режиме физические обновления связаны с FixedUpdate и не обязаны совпадать с каждым отображаемым кадром. Считывание команды игрока и применение физического изменения полезно рассматривать как отдельные задачи. Короткое нажатие должно быть сохранено до обработки, а не потеряться между двумя обновлениями.
Контакт со стеной не означает наличие опоры
Для одиночного прыжка нужен отдельный ответ на вопрос, стоит ли герой на допустимой поверхности. Проверка любого столкновения слишком широка: боковая стена тоже создаёт контакт. Можно организовать проверку небольшой области под нижней границей персонажа и учитывать только поверхности, предназначенные для опоры. Конкретный способ зависит от конструкции контроллера. Важно также проверить край платформы и момент отрыва. Нулевая вертикальная скорость сама по себе не доказывает, что герой стоит на полу: она может возникать и в верхней точке прыжка.
Проверяйте состояния на простой сцене
Сначала убедитесь, что герой устойчиво стоит, движется по горизонтали, прыгает один раз и снова получает возможность прыгнуть после приземления. Затем добавьте стену и край площадки. На время проверки полезно показывать состояние опоры и наличие ожидающей команды. Если тело нежелательно вращается, проверьте ограничения вращения в его настройках. Анимация и камера должны добавляться после понятного базового движения. Сложная графика не исправляет неверную проверку контактов и может только затруднить поиск причины.
Попробуйте на практике
Спланируйте и проверьте маленькую сцену одиночного прыжка, используя простые формы и отдельную копию учебного проекта.
- Создайте героя, пол и стену. Отдельно осмотрите границы двумерных коллайдеров и настройки физического тела героя, не полагаясь только на внешний вид.
- Запишите правило прыжка: команда принимается при подтверждённой опоре и расходуется один раз. Укажите, где сохраняется короткое нажатие до физической обработки.
- Проверьте четыре ситуации: стояние на полу, касание стены сбоку, верхнюю точку прыжка и сход с края. Для каждой отметьте ожидаемое состояние опоры.
- Исправляйте по одной причине и повторяйте соответствующую проверку. После устойчивого результата сохраните версию проекта, прежде чем добавлять анимацию и новые механики.
Как проверить результат. Боковой контакт и верхняя точка прыжка не разрешают дополнительный прыжок в выбранной модели. Видимые границы, физическая форма и отображаемое состояние опоры согласуются.
Частые вопросы
Почему нельзя сразу делать сложный уровень?
На простой сцене легче воспроизвести ошибку и увидеть её причину. Дополнительные платформы, анимации и эффекты создают больше возможных объяснений одного сбоя.
Подходит ли эта схема для любого платформера?
Нет. Здесь разбирается базовый одиночный прыжок с динамической двумерной физикой. Двойной прыжок, прыжок от стены и специальные контроллеры требуют собственных явно заданных правил.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.