Ограничение поворота объекта в Unity

Реализовал поворот платформы в юнити, теперь мне нужно ограничить её в диапазоне вращения допустим по z от 15 до -15 сам код выглядит так:

public float turnSpeed = 50f;

void FixedUpdate()
{

    if (Input.GetKey(KeyCode.A))
    {
        transform.Rotate(Vector3.back, -turnSpeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.D))
    {
        transform.Rotate(Vector3.back, turnSpeed * Time.deltaTime);
    }
}

P.S Не разобрался до конца во вращениях в юнити, пробовал ограничить через эйлеровы углы не получилось


Ответы (1 шт):

Автор решения: Даниил Ганин

Можно использовать функцию
Mathf.Clamp("переменная", "минимальное значение", "максимальное значение");

public float turnSpeed = 50f;

void FixedUpdate()
{
 if (Input.GetKey(KeyCode.A))
{        
    transform.Rotate(Vector3.back, -turnSpeed * Time.deltaTime);
}
 if (Input.GetKey(KeyCode.D))
{
    transform.Rotate(Vector3.back, turnSpeed * Time.deltaTime);       
}
transform.localRotation = Quaternion.Euler(transform.rotation.x,transform.rotation.y, Mathf.Clamp(transform.rotation.z,-15,15));
}

Я не тестировал этот скрипт, но надеюсь он правильный

→ Ссылка