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

13

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

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

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

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

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

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

jamius19
источник

Ответы:

27

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

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

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


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

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

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

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

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

Анко
источник
3
спасибо всем :) Я сделал это после вашего предложения i.imgur.com/io3v7Y4.png
jamius19
1
Это также говорит о том, что как только повернутые ноги перестают выглядеть красиво, ваш персонаж должен споткнуться :)
Хаген фон Айцен
: - / На фотографии, которую я прикрепил, вращение ног выглядит странно?
jamius19
@ jamius19 Они выглядят хорошо для меня. Я думаю, что комментарий Хагена был шуткой.
Анко
1
Вам не нужно , чтобы переместить символ вниз просто переместить зрительную наклона вверх немного по отношению к физическому
храповым уроду
2

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

dnk drone.vs.drones
источник
1
Зачем тратить ЦП на raycast, если физика Unity уже дает эту информацию по умолчанию при каждом столкновении?
Кролтан