- Home /
transform.rotation simple question (noob)
Hello, I've just started out in unity and java scripting and would like to know how to rotate a character using the w,s,d and a keys to rotate to north,south,east and west.
I've followed this tutorial link text
The tutorial shows how to make a character rotate left and right so I thought i'd try edit the script to move north and south (I would try to express this in global x,y,z coordinated but don't want to get it wrong and embarrass myself.)
The part of the script that does this is
if (Input.GetButton(leftButton))
{
transform.rotation.y=leftRotation;
}
if (Input.GetButton(rightButton))
{
transform.rotation.y=rightRotation;
}
leftRotation = -0.7071069;
rightRotation = 0.7071069;
First question. why "0.7071069"? it's seems such an arbertary number to me. a rotation of 90 degrees would make much more sense.
I've tried changing the values to 0,90,180... degrees but that character just ends up going in 1 direction most the time.
Could someone please explain how this is used propperly for what I'm trying to do and why 0.7071069 is use.
Thanks for listening.
Answer by inco · Oct 11, 2012 at 12:41 AM
That's not an arbitrary number, that's a sin/cos for π/4, and π/4 is 45 degrees in radians.
Transform.rotation is a Quaternion, and quaternions are not described by degrees of rotation. It's quite a complex subject to be described on these pages, Wikipedia has a good summary, tho. Either way you should first learn trigonometry before attempting to understand how they work.
If you want to use degrees for rotation, you can use transform.rotation.eulerAngles.y instead.
Your answer
Follow this Question
Related Questions
How to make a bone rotate facing towards a given Transform? 0 Answers
Rotate object around object with fixed value. 1 Answer
Adding Rotation to a Gameobject 1 Answer
What's wrong with my script? 1 Answer
How to prevent Z axis rotation ? 1 Answer