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.

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.

Thanks for the reply =) I’ll look into it later