private var rotating = false;
function RotateObject (thisTransform : Transform, degrees : Vector3, seconds : float) {
if (rotating) return;
rotating = true;
var startRotation = thisTransform.rotation;
var endRotation = thisTransform.rotation * Quaternion.Euler(degrees);
var t = 0.0;
//var rate = 1.0/seconds;
var easeSpeed = -100;
var timeHandler = 0;
while (t < 1.0) {
timeHandler += Time.deltaTime ;
var rate = easeSpeed * (timeHandler * timeHandler) + (.5) ;
//t += Time.deltaTime * rate;
t += rate;
thisTransform.rotation = Quaternion.Slerp(startRotation, endRotation, t);
//print("RATE: " + rate);
//print("TH: " + timeHandler);
//print("T: " + Time.deltaTime);
yield;
}
rotating = false;
}
Ive got this all messed up i think it is close but The
timeHandler += Time.deltaTime ;
will always return zero on the print
The idea would be for the 90 rotation to start slow, ramp up through the middle, then slow back down before resting at its +90 increment resting place.