private static CameraTransform UpdateCameraTransform(CameraInput input, Vector3 targetPosition, Quaternion baseRotation) { var dir = new Vector3(0, 0, -input.Distance); var orbitRotation = baseRotation * Quaternion.Euler(input.Y, input.X, 0); var position = targetPosition + TargetOffset + orbitRotation * dir; var rotation = Quaternion.LookRotation(targetPosition + TargetOffset - position); return(new CameraTransform { Position = position, Rotation = rotation }); }
private static CameraInput UpdateCameraInput(CameraInput input) { var x = input.X; //+ InputUtils.CameraX; var y = input.Y - InputUtils.CameraY; var distance = input.Distance; // + Input.GetAxis("Mouse ScrollWheel") * ZoomScale; x %= 360; y = Mathf.Clamp(y, MinYAngle, MaxYAngle); distance = Mathf.Clamp(distance, MinCameraDistance, MaxCameraDistance); return(new CameraInput { X = x, Y = y, Distance = distance }); }