Die EulerAngles sind die Winkel von dem Objekt das du getroffen hast. Wenn du auf eine Wand schießt bewegt sich die Wand nicht, du wirst also immer die selben Zahlen bekommen. Was du suchst ist der Winkel des Raycast relativ zur Normalen.
float angle = Vector3.Angle(transform.TransformDirection(Vector3.forward), hit.normal);
Ein Winkel von 0 bedeutet dass der Raycast senkrecht zur Oberfläche auftrifft, ein Winkel von 90 bedeutet dass er flach zur Oberfläche auftrifft.