float rasdvig = 0f;
float xRotationLimit = 45f; // Максимальный угол вращения (например, 45 градусов)
if (Input.GetKey(KeyCode.Z))
rasdvig = -1f;
else if (Input.GetKey(KeyCode.X))
rasdvig = 1f;
_mult = Input.GetKey(KeyCode.LeftShift) ? 2f : 1f;
// Получаем текущий угол вращения по X
Vector3 currentRotation = transform.eulerAngles;
float xRotation = currentRotation.x;
// Преобразуем угол в диапазон -180 до 180
if (xRotation > 180)
xRotation -= 360;
// Вычисляем новый угол
float newXRotation = xRotation + (rotateSpeed * Time.deltaTime * rasdvig);
// Ограничиваем угол
newXRotation = Mathf.Clamp(newXRotation, -xRotationLimit, xRotationLimit);
// Применяем вращение с ограничением
transform.rotation = Quaternion.Euler(newXRotation, currentRotation.y, currentRotation.z);