С# Unity || При повороте персонажа влево, он выпадает за локацию

Объясните мне тупому, почему после того, как я написал код на прыжок при повороте влево, персонаж пропадает и выпадает за рамки локации.

Вот скрин скрипта (можно нажать на картинку и откроется в полном размере):

Использую Untity язык вроде как C#

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Поздравляю со вступлением в клуб! Лучшие достижения старших товарищей представлены тут: www.reddit.com/r/GamePhysics

Полёты в космос, выпадение за текстуры, дёргания на месте в воздухе, многочасовые кручения на месте — в полном объёме и во множестве вариантов. Выбирай на любой вкус.

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

якби були номери рядків а ти взяв і обрізав. не суть. в фікседАпдейт ти надаєш швидкості фізичному тілу вектором2 в якому перше це флоат з інпута * швидкість, а друге швидкість по осі ігрик? здається у тебе зациклена швидкість перса по Y — спробуй втули туди якусь константу

1) Работать с Input нужно только в Update.
2) Если в редакторе поставить отрицательный скейл — персонаж не пропадает? может это в шейдере Cull back стоит ?
так сложно гадать пришли видео =)

Это происходит потому, что Unity *овно, нужно было использовать Unreal Engine.

На Анриале 2д игры так себе особенно на Андроид

якщо руки криві, то що не дай — стане дурно пахнути)

Да і якщо в тебе гра в 2d то у твого персонажа в компоненті SpriteRenderer є булевий параметр flipX. А ти пішов довшим шляхом.

Я по-моєму накапав. Звернув увагу на Леєрмаск і нагуглив що він використовується для Рейкаста. Потім на ОверлапСьоркл і нагуглив що там дійсно може бути Леєрмаск. Але ОверлапСьоркл насправді повертає масив колайдерів а не булеву змінну. Причому якщо в тебе гра в 3д то тобі треба Physics а не Physics2d. Я пропоную після Physics.ОверлапСьоркл створити foreach і пройтись по колайдерам на перевірку тега if (myCollider.tag=="підлога" ){isGrounded=true; break;}

Можеш конкрентно строчку кода написати будь-ласка, бо я зовсім новачок і не дуже зрозумів що ти написав, гра в 2D

Я промовчу. Не хвилюйся тут ще толпа народу.

Підписатись на коментарі