IEnumerator WiggleIntoPlace(Vector3 startingPos, Vector3 endingPos)
{
float duration = 0.3f;
int wiggles = 3;
float damping = 3f; //> 1
float wiggle_duration = duration / (wiggles + 1);
bool easein = false;
for (int i = 0; i <= wiggles; i++)
{
float elapsedTime = 0f;
Vector3 tempPos = endingPos - (startingPos - endingPos) / damping;
while (elapsedTime < wiggle_duration)
{
float t = elapsedTime / wiggle_duration;
t = t * t * t * (t * (6f * t - 15f) + 10f); //t = t * t * (3f - 2f * t);
if (i == 0 && easein) { t = Mathf.Sin(t * Mathf.PI * 0.5f); }
if(i == wiggles) { tempPos = endingPos; }
float x = startingPos.x - (startingPos.x - tempPos.x) * t;
float y = startingPos.y - (startingPos.y - tempPos.y) * t;
float z = startingPos.z - (startingPos.z - tempPos.z) * t;
transform.localPosition = new Vector3(x, y, z);
elapsedTime += Time.deltaTime;
yield return new WaitForEndOfFrame();
}
startingPos = tempPos;
}
transform.localPosition = endingPos;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}