Камера вращается вокруг точки, и я могу перемещать ее вверх и вниз относительно камеры.Я пытаюсь выяснить разницу углов, чтобы ограничить пользовательский ввод для перемещения камеры вверх и вниз.Меня не волнует ось Z, поэтому я убираю ее из требуемого поворота.
Проблема в том, что когда она вращается только вокруг, а не движется вверх и вниз, изменяется angleDifference.
camTransform.RotateAround(target.position, transform.forward, 5);
Quaternion desiredRotation = Quaternion.Euler(camTransform.eulerAngles.x + (-rotation.y), camTransform.eulerAngles.y, 0);
float angleDifference = Quaternion.Angle(desiredRotation, Quaternion.identity);
// I haven't set up any check to see if angleDifference is valid yet
camTransform.Rotate(-rotation.y, 0, 0, Space.Self);