Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вот Код Как мне ограничить по оси Х в rotation

Serinoksan Знаток (261), на голосовании 2 дня назад
  float rasdvig = 0f;
if (Input.GetKey(KeyCode.Z))
rasdvig = -1f;
else if (Input.GetKey(KeyCode.X))
rasdvig = 1f;
_mult = Input.GetKey(KeyCode.LeftShift) ? 2f : 1f;
transform.Rotate(Vector3.right * rotateSpeed * Time.deltaTime * rasdvig );
Голосование за лучший ответ
S.H.I. Оракул (73589) 1 месяц назад
 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);
Похожие вопросы