iTween.RotateUpdate C# (CSharp) Method

RotateUpdate() public static method

Similar to RotateTo but incredibly less expensive for usage inside the Update function or similar looping situations involving a "live" set of changing values with FULL customization options. Does not utilize an EaseType.
public static RotateUpdate ( GameObject target, Hashtable args ) : void
target GameObject
args Hashtable
return void
    public static void RotateUpdate(GameObject target, Hashtable args)
    {
        CleanArgs(args);

        bool isLocal;
        float time;
        Vector3[] vector3s = new Vector3[4];
        Vector3 preUpdate = target.transform.eulerAngles;

        //set smooth time:
        if(args.Contains("time")){
            time=(float)args["time"];
            time*=Defaults.updateTimePercentage;
        }else{
            time=Defaults.updateTime;
        }

        //set isLocal:
        if(args.Contains("islocal")){
            isLocal = (bool)args["islocal"];
        }else{
            isLocal = Defaults.isLocal;
        }

        //from values:
        if(isLocal){
            vector3s[0] = target.transform.localEulerAngles;
        }else{
            vector3s[0] = target.transform.eulerAngles;
        }

        //set to:
        if(args.Contains("rotation")){
            if (args["rotation"].GetType() == typeof(Transform)){
                Transform trans = (Transform)args["rotation"];
                vector3s[1]=trans.eulerAngles;
            }else if(args["rotation"].GetType() == typeof(Vector3)){
                vector3s[1]=(Vector3)args["rotation"];
            }
        }

        //calculate:
        vector3s[3].x=Mathf.SmoothDampAngle(vector3s[0].x,vector3s[1].x,ref vector3s[2].x,time);
        vector3s[3].y=Mathf.SmoothDampAngle(vector3s[0].y,vector3s[1].y,ref vector3s[2].y,time);
        vector3s[3].z=Mathf.SmoothDampAngle(vector3s[0].z,vector3s[1].z,ref vector3s[2].z,time);

        //apply:
        if(isLocal){
            target.transform.localEulerAngles=vector3s[3];
        }else{
            target.transform.eulerAngles=vector3s[3];
        }

        //need physics?
        if(target.rigidbody != null){
            Vector3 postUpdate=target.transform.eulerAngles;
            target.transform.eulerAngles=preUpdate;
            target.rigidbody.MoveRotation(Quaternion.Euler(postUpdate));
        }
    }

Same methods

iTween::RotateUpdate ( GameObject target, Vector3 rotation, float time ) : void
iTween