// Update is called once per frame
    void Update()
    {
        time += Time.deltaTime;
        if (time >= timeTotal)
        {
            time = timeTotal;
        }

        var t         = time / timeTotal;
        var modT      = LerpMath.ModifyTimeWithStyle(style, t);
        var lerpedVal = Mathf.Lerp(startValue, targetValue, modT);
        var type      = targetObject.GetType();
        var field     = type.GetProperty(fieldName);

        field.SetValue(targetObject, lerpedVal, null);

        if (time == timeTotal)
        {
            Destroy(this);
        }
    }
    void LerpUpdate()
    {
        if (!shouldAutoStart)
        {
            return;
        }

        time += Time.deltaTime;
        if (time >= timeTotal)
        {
            time = timeTotal;
        }

        var t         = time / timeTotal;
        var modT      = LerpMath.ModifyTimeWithStyle(style, t);
        var lerpedVal = Vector3.Lerp(startValue, targetValue, modT);

        var type  = targetObject.GetType();
        var field = type.GetProperty(fieldName);

        field.SetValue(targetObject, lerpedVal, null);

        if (time == timeTotal)
        {
            if (shouldLoop)
            {
                var temp = targetValue;
                targetValue = startValue;
                startValue  = temp;
                time        = 0f;
            }
            else
            {
                Destroy(this);
            }
        }
//		targetObject.GetType ().GetField (fieldName).SetValue (targetObject, lerpedVal);
    }