- Home /
Restricting rotation to multiples of 15?
Just like how the snapping works in the editor, I want the rotation controls of this object to snap to increments of 15. Here's what I've got right now:
var horizontalSpeed : float = 2.0;
var verticalSpeed : float = 2.0;
function FixedUpdate ()
{
transform.rotation.x = Mathf.Clamp(transform.rotation.x, 0, .7);
if (Input.GetMouseButton(1))
{
var h : float = horizontalSpeed * Input.GetAxis ("Mouse X");
var v : float = verticalSpeed * Input.GetAxis ("Mouse Y");
transform.Rotate (v, 0, 0);
}
if ((Mathf.Round(transform.eulerAngles.x)) % 6 == 0)
{
print("This value is a multiple of 15.");
}else{
print("This value isn't a multiple of 15.");
}
}
I'm using the modulo to detect when the x angle is at a multiple of 15, but I don't know how to restrict it exclusively to those values.
Comment
That can't work anyway...transform.rotation is a quaternion, which is 4-dimensional and doesn't use degrees. You can use eulerAngles, but as the docs say, you should set all elements at once and not just .x.
Your answer
![](https://koobas.hobune.stream/wayback/20220612184747im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Rotation circle to stop at a certain angle 1 Answer
Angle to Rotation 2 Answers
0-360 Y degree from Vector3.Angle 1 Answer