public override bool Equals(object obj)
            {
                if (!(obj is SpriteRendererProperties))
                {
                    return(false);
                }

                SpriteRendererProperties other = (SpriteRendererProperties)obj;

                return
                    (other.adaptiveModeThreshold == adaptiveModeThreshold &&
                     other.color == color &&
                     other.drawMode == drawMode &&
                     other.flipX == flipX &&
                     other.flipY == flipY &&
                     other.maskInteraction == maskInteraction &&
                     other.size == size &&
                     other.tileMode == tileMode);
            }
        protected override byte CalculateDeltaChanges()
        {
            byte changeType = base.CalculateDeltaChanges();

            SpriteRendererProperties newData = new SpriteRendererProperties(Renderer);
            Sprite newSprite = Renderer.sprite;

            if (previousSprite != newSprite)
            {
                previousSprite = newSprite;
                changeType    |= SpriteRendererChangeType.Sprite;
            }

            if (previousData != newData)
            {
                previousData = newData;
                changeType  |= SpriteRendererChangeType.Properties;
            }

            return(changeType);
        }