- Home /
4 rotations WTF
Okay, I'm trying to figure out why my rotation of my object in script has 4 rotations!
X,Y,Z and something else. XYZ = 0, the something else is 0.7f;
So if I do Debug.Log(transform.rotation.ToString()); I get 0,0,0,0.7f.
is this something new I never heard of? Because I can't for some reason get a.transform.rotation = b.transform.rotation; to work at all. (I've used that way for awhile now).
I'm on 5.3.4
Well, I don't know why
a.transform.rotation = b.transform.rotation
doesn't work. The documentation says that transform.rotation is a public variable, but doesn't explicitly say you can't assign a value to it. However, the 4 rotations actually define a Quaternion, which is the mathematical way to describe 3-dimensional rotations (it turns out you cannot define a 3D rotation with only 3 numbers) - and the way unity stores them.
Anyway, if you want to be able to use three rotations, I suggest you try using Transform.eulerAngles
Hope this helps!
Hey I eventually got it, I can't even explain why it wasn't working honestly. But I just started my entire script over and it worked that time. So needless to say, I can't even say what I did to fix it lol.
But I appreciate your comment buddy,
Answer by Outliver · May 02, 2016 at 02:09 PM
Rotation is represented in quaternions. As the term "quaternion" already suggests, these are four dimensional numbers. Read the wikipedia article if you wanna dig into the math. If you don't, just remember to never assign values directly to transform.rotation (except the case in which you would want to copy the value from another transform.rotation). Use methods like Rotate() or RotateAround() instead.
Your answer
Follow this Question
Related Questions
Plane Control Script rotating unexpectedly 1 Answer
transform.rotation simple question (noob) 2 Answers
Transform.Rotate for Quaternions? 1 Answer
Rotate Method via Update ? 2 Answers
How to make a bone rotate facing towards a given Transform? 0 Answers