Привет! У меня возникла огромная проблема с 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;
}
Заранее спасибо)