public override void OnInspectorGUI()
    {
        Target = (SpriteAttachments)target;

        if (Target.sheet != oldSheet)
        {
            if (Target.sheet != null && Target.spriteRenderer != null)
            {
                Target.CreateAttachments();
            }
            else
            {
                Target.DeleteAttachments();
            }
        }

        if (Target.spriteRenderer != oldSpriteRenderer)
        {
            if (Target.spriteRenderer != null && Target.sheet != null)
            {
                Target.CreateAttachments();
            }
            else
            {
                Target.DeleteAttachments();
            }
        }

        oldSpriteRenderer = Target.spriteRenderer;
        oldSheet          = Target.sheet;

        EditorGUILayout.HelpBox("Will recreate all attachment on runtime if you manually destroy one of them", MessageType.Info);
        base.OnInspectorGUI();
    }
    private void Update()
    {
        if (Attachments == null)
        {
            Attachments = GetComponentInParent <SpriteAttachments>();
        }

        if (flipChildren)
        {
            foreach (SpriteRenderer childRenderer in spriteRendererChildren)
            {
                childRenderer.flipX = Attachments.spriteRenderer.flipX;
                childRenderer.flipY = Attachments.spriteRenderer.flipY;
            }
        }
    }
 private void Awake()
 {
     Attachments            = GetComponentInParent <SpriteAttachments>();
     spriteRendererChildren = GetComponentsInChildren <SpriteRenderer>().ToList();
 }