I am creating a basic Puzzle Bubble clone, however I’m having some issues with the rotation of the cannon.

It points correctly towards the touched position - or drag, however also rotates past the stage. The rotation takes place on the X variable, but produces -30 for both directions, facing up from the bottom.

```
Vector3 difference = mainCamera.ScreenToWorldPoint(TouchLocation) -
LauncherObject.position;
difference.Normalize();
float rotateX = Mathf.Atan2(-difference.y, -difference.x) * Mathf.Rad2Deg;
Vector3 TargetAngle = new Vector3(rotateX, -90, -90);
LauncherObject.rotation = Quaternion.Euler(TargetAngle);
```

What would be the correct way to clamp this, when the two values are -30, 90, 90 and -30, -90, -90?