void GenerateLookToTargets()
{
//values holder [0] from, [1] to, [2] calculated value from ease equation:
vector3s=new Vector3[3];
//from values:
vector3s[0]=transform.eulerAngles;
//set look:
if(tweenArguments.Contains("looktarget")){
if (tweenArguments["looktarget"].GetType() == typeof(Transform)) {
//transform.LookAt((Transform)tweenArguments["looktarget"]);
transform.LookAt((Transform)tweenArguments["looktarget"], (Vector3?)tweenArguments["up"] ?? Defaults.up);
}else if(tweenArguments["looktarget"].GetType() == typeof(Vector3)){
//transform.LookAt((Vector3)tweenArguments["looktarget"]);
transform.LookAt((Vector3)tweenArguments["looktarget"], (Vector3?)tweenArguments["up"] ?? Defaults.up);
}
}else{
Debug.LogError("iTween Error: LookTo needs a 'looktarget' property!");
Dispose();
}
//to values:
vector3s[1]=transform.eulerAngles;
transform.eulerAngles=vector3s[0];
//axis restriction:
if(tweenArguments.Contains("axis")){
switch((string)tweenArguments["axis"]){
case "x":
vector3s[1].y=vector3s[0].y;
vector3s[1].z=vector3s[0].z;
break;
case "y":
vector3s[1].x=vector3s[0].x;
vector3s[1].z=vector3s[0].z;
break;
case "z":
vector3s[1].x=vector3s[0].x;
vector3s[1].y=vector3s[0].y;
break;
}
}
//shortest distance:
vector3s[1]=new Vector3(clerp(vector3s[0].x,vector3s[1].x,1),clerp(vector3s[0].y,vector3s[1].y,1),clerp(vector3s[0].z,vector3s[1].z,1));
//need for speed?
if(tweenArguments.Contains("speed")){
float distance = Math.Abs(Vector3.Distance(vector3s[0],vector3s[1]));
time = distance/(float)tweenArguments["speed"];
}
}