- Home /
Setting Up Vector and Still Rotating the Character
I want to set the up vector of my character to match the terrain below, but I also need to be able to rotate it along the local y axis with the mouse, ie a first person controller. I can set the up vector fine, but I don't know how to rotate the character with the mouse at the same time.
The code that I am using is pretty simple: transform.up = rotations; where rotations is a vector3 direction. Currently I rotate my character using the Rotate method and doing so in local space. Any help would be appreciated!
Seems like you want to use Transform.LookAt since you can input a point to look at as well as the up direction.
http://docs.unity3d.com/ScriptReference/Transform.LookAt.html
@maccabbe lookat won't really work because rotations is not a location but a direction.
Why can't you use Transform.LookAt(transform.position+direction, up)
?
@maccabbe it sorta works, the player ends up being rotated to be tangent to my object. Also I am unable to rotate the player with this method. Also LookAt has the problem of flipping the player around whenever it reaches a certain points, if it was using transform.up or vector3.up, when it reaches complete vertical along the up vector.
Answer by Maethorion · Jun 17, 2015 at 06:27 AM
You could try to rotate the character by using transform.RotateAround.
In update, after setting the characters up vector, just call:
transform.RotateAround(transform.position, transform.up, rotation Input.GetAxis("Mouse X") * rotationSpeed * Time.deltaTime);
where rotationSpeed can be used to define the turning speed.
Your answer
Follow this Question
Related Questions
How do I make gameObject.transform.rotation.z equal to a set float value? 2 Answers
Object wont rotate in the opposite direction 1 Answer
Turning character with transform.Rotate 0 Answers
Multiple Fire on different launcher GameObjects 1 Answer
My object isn't rotating to the transform of another object. How do I fix this? 1 Answer