@Dcat_me
обесняйте по-проще пойжалуйста.

Unity 2D, Как убрать скольжение по наклонным поверхностям?

Мне нужно чтобы персонаж не скользил на наклонной поверхности.
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
@Dcat_me Автор вопроса
обесняйте по-проще пойжалуйста.
Я сделал такой костыль.
Если вам надо откинуть персонажа установите CanSlide = true;
(Создайте 2 физ. Материала NoSlide c Friction 10 и Slide с Friction 0)
//BugFix
    public bool CanSlide = false;
    public PhysicsMaterial2D NoSlide;
    public PhysicsMaterial2D Slide;

void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

void FixedUpdate()
    {
        BugFix();
    }

void BugFix()
    {
        if (movement.x == 0 && !CanSlide)
        {
            rb.sharedMaterial = NoSlide;

        }
        else
        {
            rb.sharedMaterial = Slide;

        }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
1. Узнаёте что персонаж на земле, например через Physics2D.OverlapCircle
2. Получаете нормаль поверхости под ногами персонажа, например через Physics2D.Raycast
3. Вычисляете угол поверхности, через Vector2.Angle
4. Угол меньше максимального (поле класса, например 70 градусов)
5а. Да: двигаемся как обычно
5б. Нет: Можно поменять физический материал (свойство friction), или, например, обнулить x часть вектора rigidbody2D.velocity
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы