Need to Keep Player On Slope

When I go on a slope and try to turn fast I just go into the air then fall back down to the slope and when I reach the top it dose a little jump plz help. This is my player code for the Movement.
Ps: The Comments are for me I don’t know if I want jumping in the game yet or naw

using Player.Manager;
using UnityEngine;

namespace Player.Controller
{
    public class PlayerController : MonoBehaviour
    {
        [SerializeField] private float AnimBlendSpeed = 8.9f;
        [SerializeField] private Transform CameraRoot;
        [SerializeField] private Transform Camera;

        [SerializeField] private float UpperLimitl = -40f;
        [SerializeField] private float LowerLimit = 70f;
        [SerializeField] private float MouseSensativity = 21.9f;
        //[SerializeField] private float JumpFactor = 260f;
        //[SerializeField] private float Dis2Ground = 0.8f;
        //[SerializeField] private LayerMask GroundCheck;
        //[SerializeField] private float AirResistance = 0.8f;


        private Rigidbody _PlayerRigidBody;
        private InputManeger _InputManeger;
        private Animator _Animator;

        //private bool _grounded;
        private bool _HasAnimator;
        private int _xVelHash;
        private int _yVelHash;
        //private int _jumpHash;
        //private int _groundHash;
        //private int _fallingHash;
        //private int _zVelHash;
        private int _crouchHash;

        private float _xRotation;


        private const float _walkSpeed = 2f;
        private const float _runSpeed = 5f;

        private Vector2 _currentVelocity;


        void Start()
        {
            _HasAnimator = TryGetComponent<Animator>(out _Animator);
            _PlayerRigidBody = GetComponent<Rigidbody>();
            _InputManeger = GetComponent<InputManeger>();

            _xVelHash = Animator.StringToHash("X_Velocity");
            _yVelHash = Animator.StringToHash("Y_Velocity");
            //_jumpHash = Animator.StringToHash("Jump");
            //_fallingHash = Animator.StringToHash("Falling");
            //_zVelHash = Animator.StringToHash("Z_Velocity");
            //_groundHash = Animator.StringToHash("Grounded");
            _crouchHash = Animator.StringToHash("Crouched");

        }

        private void FixedUpdate()
        {
            Move();
            //HandleJump();
            HandleCrouch();
            //SampleGround();
        }
        private void LateUpdate()
        {
            CameraMovements();
        }

        private void Move()
        {
            if (!_HasAnimator) return;

            float targetSpeed = _InputManeger.Run ? _runSpeed : _walkSpeed;
            if (_InputManeger.Move == Vector2.zero) targetSpeed = 0f;
            if (_InputManeger.Crouch) targetSpeed = 1.5f;

            //if (_grounded)
            //{
            _currentVelocity.x = Mathf.Lerp(_currentVelocity.x, _InputManeger.Move.x * targetSpeed, AnimBlendSpeed * Time.fixedDeltaTime);
            _currentVelocity.y = Mathf.Lerp(_currentVelocity.y, _InputManeger.Move.y * targetSpeed, AnimBlendSpeed * Time.fixedDeltaTime);

            var xVelDifferance = _currentVelocity.x - _PlayerRigidBody.velocity.x;
            var zVelDifferance = _currentVelocity.y - _PlayerRigidBody.velocity.z;

            _PlayerRigidBody.AddForce(transform.TransformVector(new Vector3(xVelDifferance, 0, zVelDifferance)), ForceMode.VelocityChange);
            //}
            //else
            //{
            //    _PlayerRigidBody.AddForce(transform.TransformVector(new Vector3(_currentVelocity.x * AirResistance, 0, _currentVelocity.y * AirResistance)), ForceMode.VelocityChange);
            //}
            _Animator.SetFloat(_xVelHash, _currentVelocity.x);
            _Animator.SetFloat(_yVelHash, _currentVelocity.y);

        }

        private void CameraMovements()
        {
            if (!_HasAnimator) return;

            var Mouse_X = _InputManeger.Look.x;
            var Mouse_Y = _InputManeger.Look.y;
            Camera.position = CameraRoot.position;

            _xRotation -= Mouse_Y * MouseSensativity * Time.smoothDeltaTime;
            _xRotation = Mathf.Clamp(_xRotation, UpperLimitl, LowerLimit);

            Camera.localRotation = Quaternion.Euler(_xRotation, 0, 0);
            _PlayerRigidBody.MoveRotation(_PlayerRigidBody.rotation * Quaternion.Euler(0, Mouse_X * MouseSensativity * Time.smoothDeltaTime, 0));
        }
        private void HandleCrouch() => _Animator.SetBool(_crouchHash, _InputManeger.Crouch);

        //private void HandleJump()
        //{
        //    if(!_HasAnimator) return;
        //    if (!_InputManeger.Jump) return;
        //    _Animator.SetTrigger(_jumpHash);
        //}
        //public void JumpAddForce()
        //{
        //    _PlayerRigidBody.AddForce(-_PlayerRigidBody.velocity.y * Vector3.up, ForceMode.VelocityChange);
        //    _PlayerRigidBody.AddForce(Vector3.up * JumpFactor, ForceMode.Impulse);
        //    _Animator.ResetTrigger(_jumpHash);
        //}
        //private void SampleGround()
        //{
        //    if (!_HasAnimator) return;

        //    RaycastHit hitInfo;
        //    if (Physics.Raycast(_PlayerRigidBody.worldCenterOfMass, Vector3.down, out hitInfo, Dis2Ground + 0.1f, GroundCheck))
        //    {
        //        _grounded = true;
        //        SetAnimationGounded();
        //        return;
        //    }

        //    _grounded = false;
        //    _Animator.SetFloat(_zVelHash, _PlayerRigidBody.velocity.y);
        //    SetAnimationGounded();
        //    return;
        //}
        //private void SetAnimationGounded()
        //{
        //    _Animator.SetBool(_fallingHash, !_grounded);
        //    _Animator.SetBool(_groundHash, _grounded);

        //}
        //}
    }
}