I'm writing a script to rotate an object in my game. It takes the objects starting rotation and adds more rotation to it dependent on the object which is rotating it (so if the object thats rotating it turns 20 degrees, so does the object. The script works fine for rotations between 0-180, but at 181 to about 356 it goes crazy, rapidly flipping the object back and forth as if it was mirroring the object on and off rapidly.
Here's my code - I looked through, and I can't find a flaw with it. Some of the things which may seem unnecessary have probably been added in an attempt to fix this issue.
Basically, if the object is being turned, it gets the amount of rotation to add, and adds it to it's own starting rotation. The modifiedRot bit is just there to see if there was an issue with the rotation value switching between positive and negative, but it's not. the Debug.Log for modifiedRot outputs as always positive, so it's not that either.
All help is appreciated! Thanks!
asked Apr 25, 2011 at 05:00 PM
well, maybe it is because of this:
"Do not set one of the eulerAngles axis separately (eg. eulerAngles.x = 10; ) since this will lead to drift and undesired rotations. When setting them to a new value set them all at once as shown above. Unity will convert the angles to and from the rotation stored in Transform.rotation"
You should something like
answered Apr 25, 2011 at 05:15 PM