- Home /
Need very specific help with Quaternions
I need to make a character to always stand up against an artificial Gravity Vector.
The artificial gravity source can be anywhere and any angle/vector.
When I am inside the trigger collider of the gravity source, I want my character to slowly "stand up", meaning its feet pointing towards the floor, even if not touching, while keeping its rotation around its local Y axis to keep looking approximately in the same direction.
I have a script attached to my character gameObject.
By now I achieved to make the character to stand up against the global Vector3.up, I simply need help with doing it against a specific vector.
Here's the part of this script I need help with :
Vector3 gravityVector = artificialGravitySource.transform.up; // unused for now...
Quaternion startRotation = transform.rotation;
Quaternion endRotation = new Quaternion (0, transform.rotation.y, 0, transform.rotation.w);
transform.rotation = Quaternion.RotateTowards(startRotation, endRotation, 100 * Time.deltaTime);
I need to set my endRotation according to gravityVector, keeping my local y rotation.
Thank you for your help.
Answer by Inok · Dec 29, 2014 at 12:31 PM
if I understood your question correctly then try this: Quaternion endRotation = Quaternion.Euler(gravityVector.x, transform.rotation.y, gravityVector.z);
. Look at this for clear understanding Quaternion.Euler Hope it will be useful.
Sorry, it does not work for me. It rotates on all 3 axis and always goes back to a certain Y axis.
I don't want it to rotate at all on the Y axis.
The Quaternion.Euler function takes ANGLES (in degrees), not vector coordinates, as parameters.
How do I get a rotation in angles from my gravityVector ? $$anonymous$$y Gravity Vector is for instance(0,1,0) or (0.75f, 0.75f, 0)...
Your answer
Follow this Question
Related Questions
How to add a gravity vector/force to my playerShip's current velocity? 1 Answer
Rotating a character's velocity? 3 Answers
Custom gravity based on normal vector and rigidbody.addForce 2 Answers
Normal Walker: Player Y Rotation Snapping back to 0? 0 Answers
C# Raycast from Object direction (z-axis) + another Vector3 1 Answer