Help floating the rotation value described in inspector before unity converts it to Quaternion at runtime

I have two wheels, one controls the other however at a ratio of 4:1 turns, meaning a full 360 degrees turn on wheel1 is worth 90 degrees on wheel2. My problem is that unity automatically converts the rotation value to between 0 and 360 which is not ideal for setting a ratio. As unity snaps the value between 0 and 360, wheel2 snaps between 0 and 90 because it’s ratio is 1:4 with wheel1 .

It would work correctly if i were to use the rotation value from the inspector however floating the rotation via any methods get converted at runtime to Qauternion.

I’ve had way too much coffee over this one!

One option would be for you to NOT use the transform inspector for input.

Instead create your own public (unclipped) Euler values, as members of your wheel object.

Then at Start() or during Update(), you can do your ratio calculations, AND assign your unlcipped Euler values to the transform.rotation (which will at this point, clip the angles it stores).

Other thoughts: since this a wheel, and it seems like it’s only the wheel rotation angle you need the ratio for (as opposed to turn angle) you should be able to do this with a single Float stored in the wheel (as opposed to the three floats in a vector3/eulerAngles).

Still other thoughts: Instead of computing the wheels new rotation using the ratio, increment the rotation angle of each wheel, based upon the wheel’s scale.