override protected void TweenUpdateRuntime(float factor, bool isFinished)
    {
        if (ignoreZ)
        {
            float oldZ = CachedTransform.position.z;
            CachedTransform.position = beginTransform.position * (1f - factor) + endTransform.position * factor;
            CachedTransform.SetGlobalPositionZ(oldZ);
        }
        else
        {
            CachedTransform.position = beginTransform.position * (1f - factor) + endTransform.position * factor;
        }

        if (ignoreRotation)
        {
            CachedTransform.rotation = beginTransform.rotation;
        }
        else
        {
            CachedTransform.rotation = Quaternion.Euler(beginTransform.rotation.eulerAngles * (1f - factor) + endTransform.rotation.eulerAngles * factor);
        }
    }