protected override void Start()
    {
        //base.Start();
        Target = this.transform;
        DYLayoutGroup layoutGroup = this.GetComponent <DYLayoutGroup>();

        if (null != layoutGroup)
        {
            Init(layoutGroup, true);
        }
    }
    protected override void Reset()
    {
        base.Reset();

        #if UNITY_EDITOR
        DYLayoutGroup layoutGroup = this.GetComponent <DYLayoutGroup>();

        if (null != layoutGroup)
        {
            DOTweenSpring[] tempList = this.GetComponents <DOTweenSpring>();
            if (null != tempList)
            {
                if (tempList.Length > 1)
                {
                    UnityEditor.EditorUtility.DisplayDialog("Error", "Can not add two DOTweenSpring in one LayoutGroup", "I see");

                    GameObject.Destroy(this);
                }
            }
        }
        #endif
    }
    public void Init(DYLayoutGroup layoutGroup, bool isController)
    {
        if (_layoutGroup != layoutGroup)
        {
            _layoutGroup = layoutGroup;
        }

        if (_isController != isController)
        {
            _isController = isController || null != this.GetComponent <DYLayoutGroup>();
        }

        if (null == _layoutGroup)
        {
            return;
        }

        _springController = _layoutGroup.SpringController;

        if (this.transform.parent != _layoutGroup.transform && this.transform != _layoutGroup.transform)
        {
            Debug.LogWarningFormat("当前GameObject({0})不处于其管理的LayoutGrouop({1})下?!这将可能引起异常!", this.name, _layoutGroup.transform.name);
        }
    }