Ограничение поворота объекта в 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));
}
Я не тестировал этот скрипт, но надеюсь он правильный