- Home /
How to use quaternion.lerp
I came across this:
var from : Transform;
var to : Transform;
var speed = 0.1;
function Update () {
transform.rotation =
Quaternion.Lerp (from.rotation, to.rotation, Time.time * speed);
}
But I'm to stupid to figure it out. I'm trying to smoothly rotate an object a certain amount, but do I replace where it says Transform with an angle like 10,0,0?
If you are doing a relative movement, Use Transform.Rotate() ins$$anonymous$$d. There are lots of ways of setting up a movement over time using a Quaternion. If you explain in detail how you plan to use this code, someone on this list can modify your code to make it work for that specific use.
Why don't you check out the Unity Script Reference, and search for Quaternion.Lerp.
Answer by Quantum2 · Jul 25, 2013 at 06:40 PM
from.rotation is the angle from where you want to start rotating the object, to.rotation the angle where the rotation stops, and the last elemente is the delta T of the rotation. I'm not sure but I think quatertion arguments must be in radians, not degress.
Nice, had that thing bugging me but never rembered to check it out
Answer by robertbu · Jul 25, 2013 at 06:54 PM
You can use Quaternion.Euler() to construct a rotation for use in this code:
var from : Vector3;
var to : Vector3;
var speed = 0.1;
private var qFrom : Quaternion;
private var qTo : Quaternion;
function Start() {
qFrom = Quaternion.Euler(from);
qTo = Quaternion.euler(to);
}
function Update () {
transform.rotation =
Quaternion.Lerp (qFrom, qTo, Time.time * speed);
}
Note this code is only going to work when the game is first run. The last parameter of the Lerp() is a value between 0 and 1, and that will only be true when the game first starts.