Меняет ли ваш игрок свое направление вперед, когда он разворачивается?
Если это так, вы можете взять точечное произведение направления движения игрока с нормальным уклоном.
Если произведение положительное, тогда направление игрока вперед как правило, совпадают с направлением наклона - поэтому они обращены вниз, если продукт отрицательный, то векторы, как правило, обращены друг к другу, поэтому игрок направлен вверх.
if(Mathf.sign(Vector2.Dot(transform.forward,hit.normal) == 1){
// facing downhill
else{
// facing uphill
}
Если вы не изменились ваш прямой вектор при повороте вы всегда можете сохранить свой собственный, основываясь на последнем введенном направлении.
Надеюсь, это поможет