I have been banging my head against the wall with this for awhile.
I am basically using the penelope controller script but I am doing a top down 3/4 view game dual stick shooter game and I want the right joystick to control the direction the player is facing and not the camera. (Similar to MiniGore etc. for the iPhone/iPod)
What I am trying to understand is trying to convert the rotateJoystick.position which is a Vector3 attribute into the xyz coordinates of the player but I can't seem to get it right.
At first I thought I could use something like: var facingDirection : Vector3 = (Vector3.zero - rotateJoystick.position);
to get the vector of the joystick , then I would normalize the vector to get the direction and then set it the player
thisTransform.forward = facingDirection;
but obviously my logic is flawed. If anyone could point me in the right direction or give me a hint, I would really appreciate it.
What you could do is glue the camera in the facing direction of the player and change the position of the camera in the player movement update to the position + distance to player along the length of the facing direction vector. That would give the view similar to most shooters where the character also looks the direction the mouse wants it to and the camera still at the same spot.
Just don't forget to check for camera collisions or other then if you do. It would be rather silly to look at the characters back when it is brushing against a wall. That however is quite complex as far as I know.
Oh and another note. If you have the transform of the player you could simply just take that and multiply the values with a minor amount amongst the x and z planes and you should already be in business for a 2D game. For 3D you will still need the angle though. You can extract it with trigonometry yourself or plow through endless scripting references. I wish I had that reference for you here but unfortunatly I don't. Maybe it's eulerAngles, but that's just a wild guess
answered Nov 22 '10 at 10:03 AM