- Home /
How to Get Quaternion Slerp to Return to Original Position?
Hey everybody,
I'm using:
transform.rotation=Quaternion.Slerp (start, target, Time.time * time);
which works great!
However, I'm struggling with trying to get the object to move back to it's original position.
I thought that it would be as simple as switching start and target, but it appears not.
I'm trying:
transform.rotation=Quaternion.Slerp (target, start, Time.time * time);
but this does not work.
How do you get the object to move back to it's original position with Quaternion.Slerp?
Any help and explanation is really appreciated.
Thanks in advance.
*Edit to add that the object teleports back to original position, there's now Slerp.
Answer by zharik86 · Mar 18, 2014 at 06:37 AM
If you want to rotate object by means of the SLerp function and to return it in home position, that, probably, the code will help you below(write on CSharp):
private Quaternion startRot = Quaternion.Euler(0, 0, 0);
private Quaternion targetRot = Quaternion.Euler(0, 0, 0);
private float speedRot = 5.0f; //speed rotation
void Start() {
startRot = this.transform.rotation; //initialization start rotation
targetRot = Quaternion.Euler(0, 50, 0); //initialization target rotation
}
void Update() {
if(Input.GetKey(KeyCode.A)) { // if press and hold key A, then rotate to target
transform.rotation=Quaternion.Slerp (transform.rotation, targetRot, speed*Time.deltaTime);
}
if(Input.GetKey(KeyCode.D)) { // if press and hold key D, then rotate to start
transform.rotation=Quaternion.Slerp (transform.rotation, startRot, speed*Time.deltaTime);
}
}
And attatch this script to your object. I hope it to you will help.
This works, but you need to change the "speed" variables in the Update to "speedRot"
Your answer
Follow this Question
Related Questions
How to smoothly rotate an object on only two axes? 2 Answers
Quaternion.Slerp question, rotating back to original 1 Answer
Doesn't Add Rotation Over 180 2 Answers
This can't be impossible or? Rotate (flip) smoothly from one point to endpoint on mouseclick. 3 Answers
Quaternion.Slerp only one axis? 1 Answer