- Home /
Complicated Rotation Issue
Hello everyone,
This is my first post on the forums and probably will not be my last :). I have run into something of a roadblock in my code.
What I'm trying to do is to get the player's upper body to face the "CursorWorldPosition" which I have obtained using a RaycastHit from the Camera to the mouse position. The solution works perfectly, the player aims exactly at the mouse and that is where the bullet goes.
The problem occurs when I try to modify the value of the player's rotation. I want it only to rotate on a fixed vertical axis. I have tried numerous things here including localRotation, localEulerAngles, EulerAngles, transform.rotation.eulerAngles. And nothing seems to be working, rotation is always off and I can never quite get the exact vertical axis that it is rotating on.
Figuring this axis out would really help as I also need to set a Mathf.Clamp on it to ensure that the player cannot shoot himself :).
Here is the segment of code I am currently working with. (Please let me know if you would like me to expand)
Quaternion Focus = Quaternion.LookRotation(hit.point - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, Focus, 100);
This is pretty much just the basic "Look at object" script, but I can't seem to figure out how to modify it on only a vertical axis.
I would appreciate any help I can get. Thank you.
McMayhem
just go to unityGE$$anonymous$$S.com for a full explanation of quaternions, eulers etc
Answer by bigSky · Oct 24, 2012 at 11:41 AM
It sounds as if you want to rotate, and then make some additional rotation on top of that. This means the Quaternions need to be multiplied:
transform.rotation = Quaternion.LookRotation(hit.point - transform.position) * Quaternion.Slerp(transform.rotation, Focus, 100);
Your answer
Follow this Question
Related Questions
how to apply overall rotation to collection of rotated objects 0 Answers
Unity Simulate Local Rotation 0 Answers
Fixing the rotation around a particular axis using Quaternions? 2 Answers
Bike stay upright based on surface normal 1 Answer
Why is my object's local x rotation not going past 90 degrees? 1 Answer