지정된 범위 내에서 카메라를 피치하는 데 문제가 있습니다. 현재 내 카메라는 아무런 제약없이 모델 주위에서 피치를 잡을 수 있습니다. 나는 Y 축을 6과 36의 범위로 제한하려고 시도했지만 피칭을 계속하면 Z 축은 카메라를 앞으로 계속 움직일 것입니다.두 값 사이의 카메라 피치 제한
저는 컨트롤러 썸 스틱을 사용하여 동작을 제어하고 있습니다. 궁극적으로, 내가하려는 일은 : "카메라의 타겟 (모델)에 대한 각도가 내 한계 값보다 큰 경우, 더 많은 피치 (지속적으로 썸휠을 위로 잡고있는 사람 또는 아래로) 적용됩니다. "
참고 :이 그것은 어떠한 공간에서 카메라의 X 또는 Y 위치와 아무 상관이없는 3 인칭 카메라
public void cameraPitch(float pitch)
{
cameraDirection = ModelLoad.CameraPos - ModelLoad.camTarget;
axisPitch = Vector3.Cross(Vector3.Up, cameraDirection);
// pitch constrained to model's orientation
axisPitch.Normalize();
ModelLoad.CameraPos = Vector3.Transform(cameraDirection,
Matrix.CreateFromAxisAngle(axisPitch, pitch)) + ModelLoad.camTarget;
if (ModelLoad.camPos.Y > 36.0f)
{
ModelLoad.camPos.Y = 36.0f;
}
if (ModelLoad.camPos.Y < 6.0f)
{
ModelLoad.camPos.Y = 6.0f;
}
}