- Home /
Is it possible to use a quaternion from a gameobjects position to another gameobjects position?
Hi.
I would really like to be able to change the rotation of a game object to match that of another. Right now i have the following code (Pretty much from the Unity documentation)
 public Transform endMarker;
 public float speed = 25f;
 private float startTime;
 private float journeyLength;
 private bool resettingPosition = false;
 public void resetPosition() {
     startTime = Time.time;
     journeyLength = Vector3.Distance(transform.position, endMarker.position);
     resettingPosition = true;
 }
 void Update() {
     if (resettingPosition == true) {
         float distCovered = (Time.time - startTime) * speed;
         float fracJourney = distCovered / journeyLength;
         transform.position = Vector3.Lerp (transform.position, endMarker.position, fracJourney);
     }
 }
What this does is Lerping between the gameObject this script is attached to and a public Transform called endMarker, that I pulled another object into. This way my own object positions itself on the other object over time, copying it's exact positioning values.
I would like to be able to do the same with rotation, but after messing up with transforms, vectors 3s, quaternions for ages I'm on the verge of giving up and i figured maybe asking here would be an idea.
Thanks so much in advance!
Don't forget to accept the answer and close the thread if it solved your problem, thanks !
Answer by Fluffy_Kaeloky · Dec 15, 2016 at 11:35 PM
You'll need a startMarker if you want a start-end travel.
 transform.rotation = Quaternion.Slerp(startMarker.rotation, endMarker.rotation, fracJourney);
Haven't tried it, but it should work.
You should also be using a starting position for your position, your lerp/slerp factor will define your position in your journey : 0 = start, 1 = end.
 transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney);
Then you slowly change fracJourney form 0 to 1, and back again if you want.
EDIT : Maybe I did not understand your question quite correctly, and that's not what you want, could you rephrase it if need be ?
Your answer
 
 
             Follow this Question
Related Questions
Flip over an object (smooth transition) 3 Answers
MoveTowards rotation not always functioning 0 Answers
Lerp Rotation C# 3 Answers
Unit rotation fails consistently on all slerp rotations after the first? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                