Здравствуйте!
Пытаясь ограничить угол поворота объекта, использовал метод Math.Clamp, но столкнулся с тем, что он, как я понял, ограничивает угол поворота в мировых координатах, а тк поворачиваемый объект является вложенным, то всё это работает некорректно.
Подскажите, можно ли сделать ограничение поворота по горизонтале относительно направления родительского объекта.
вот код, заранее спасибо:
using UnityEngine;
using System.Collections;
public class RotationGun : MonoBehaviour
{
Quaternion originRotation;
float angleHorizontal;
float angleVertical;
float mouseSens = 10;
private void Start()
{
originRotation = transform.rotation;
}
private void FixedUpdate()
{
angleHorizontal += Input.GetAxis("Mouse X") * mouseSens;
angleVertical += Input.GetAxis("Mouse Y") * mouseSens;
angleVertical = Mathf.Clamp(angleVertical, -60, 60);
angleHorizontal = Mathf.Clamp(angleHorizontal, -60, 60);
Quaternion rotationY = Quaternion.AngleAxis(angleHorizontal, Vector3.up);
Quaternion rotationX = Quaternion.AngleAxis(-angleVertical, Vector3.right);
transform.rotation = originRotation * rotationY * rotationX;
}
}