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

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

Мне нужно чтобы персонаж не скользил на наклонной поверхности.
  • Вопрос задан
  • 556 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skysmart
    Unity для детей
    3 месяца
    Далее
  • Skysmart
    Профессия «Разработчик игр» для школьников
    2 года
    Далее
  • Rebotica
    Разработка игр для детей и подростков
    2 года
    Далее
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы