@EboLiK

Как реализовать движение по наклонной поверхности?

Привет! У меня возникла огромная проблема с 2д движением по наклонной поверхности. Чтоб было понятнее, я на всякий случай объясню то, что мне надо. К примеру у нас есть горка с наклоном в условные 30 градусов. Когда я на нее подымаюсь, то при подъеме теряю скорость, а на вершине горки я просто прыгаю как на трамплине, а когда спускаюсь с нее, то персонаж спускается прыжками. Надо сделать так, чтобы он был, как бы сказать, прижат к плоскости и двигался параллельно плоскости. Уже просмотрел куча гайдов, но они то ли не подходят для меня, то ли что-то не то со мной. Вот что я имею сейчас:
private void Move()
    {
        float targetVelocityX = DetermineTargetVelocityX();

        Vector2 targetVelocity = new Vector2(targetVelocityX, _rigidbody.velocity.y);
        _rigidbody.velocity = Vector2.SmoothDamp(_rigidbody.velocity, targetVelocity, ref nullVector, _smoothTime);

        bool isWalking = _moveDirection != Vector2.zero;

        if (isWalking && Mathf.Sign(_moveDirection.x) != Mathf.Sign(transform.localScale.x))
            Flip();
    }

    private float DetermineTargetVelocityX()
    {
        float targetVelocityX = _moveDirection.x * _moveSpeed;

        if (_isCrouching)
            targetVelocityX = _moveDirection.x * _crouchSpeed;

        if (_isDashing)
            targetVelocityX = _moveDirection.x * _dashSpeed;

        return targetVelocityX;
    }


Заранее спасибо)
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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