Как заставить моего 2D персонажа нормально стоять на склоне?


13

У меня есть этот персонаж в Unity3D (2D Mode) ... на склоне, который выглядит так, введите описание изображения здесь

Но я хочу, чтобы персонаж стоял вдоль красной линии .. Как ниже введите описание изображения здесь

Как я могу сделать это в Unity3d?

У меня есть эта настройка ..

введите описание изображения здесь

Я использую простую Addforce для перемещения ... Если я уберу ограничение позиции z, это приведет к странным движениям, таким как вращение и так далее ... Любая помощь будет принята с благодарностью :)

Ответы:


27

Считаете ли вы, что для человека очень странно стоять перпендикулярно склону?

стоя перпендикулярно склону

Вы должны быть в вертикальном положении, чтобы оставаться в равновесии.


Некоторые альтернативы:

  • Рассматривайте его ноги как отдельный объект и вращайте их так, чтобы они были параллельны склону. (Raycast найдет угол нормальный , как описано в dnk . Угол для ног равен + 90 ° .)

    повернутые ноги

  • Поддельные, двигая весь персонаж немного вниз.

    фальшивые "повернутые" ноги


3
спасибо всем :) Я сделал это после вашего предложения i.imgur.com/io3v7Y4.png
jamius19

1
Это также говорит о том, что как только повернутые ноги перестают выглядеть красиво, ваш персонаж должен споткнуться :)
Хаген фон Айцен

: - / На фотографии, которую я прикрепил, вращение ног выглядит странно?
jamius19

@ jamius19 Они выглядят хорошо для меня. Я думаю, что комментарий Хагена был шуткой.
Анко

1
Вам не нужно , чтобы переместить символ вниз просто переместить зрительную наклона вверх немного по отношению к физическому
храповым уроду

2

Попробуйте использовать RaycastHit.normal на земле, чтобы получить нормальный. Им положи char.up = нормальный


1
Зачем тратить ЦП на raycast, если физика Unity уже дает эту информацию по умолчанию при каждом столкновении?
Кролтан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.