コード例 #1
0
        //
        //  第二步的销毁
        //
        private void DoDestoriedForSecondStep()
        {
            _cardStatus = CardStatusEnum.DESTORYINGSECOND;

            _protectAgent.SetDisabled();

            GetComponent <CircleCollider2D>().radius = 0;

            if (_originAgent == null)
            {
                Close();
            }
            else if (_originAgent.isStarEffect)
            {
                Close();
            }
            else
            {
                //  如果场景没有变,则回到原位置
                if ((_sceneIndex == _manager.SceneIndex) && (_originAgent != null))
                {
                    //恢复并归位
                    // 缩到很小很小
                    RectTransform cardRect = GetComponent <RectTransform>();

                    //  移到后方、缩小、透明
                    Tweener t = cardRect.DOScale(0.1f, 1f);

                    //  获取位置
                    Vector3 to = new Vector3(_originAgent.OriVector2.x - _manager.PanelOffsetX
                                             , _originAgent.OriVector2.y - _manager.PanelOffsetY, 200);

                    cardRect.DOAnchorPos3D(to, 1f)
                    .OnComplete(() =>
                    {
                        if ((_sceneIndex == _manager.SceneIndex) && (_originAgent != null))
                        {
                            // 恢复
                            _originAgent.DoRecoverAfterChoose(cardRect.position);
                        }
                        _cardStatus = CardStatusEnum.OBSOLETE;
                    });
                }
                //  直接消失
                else
                {
                    Close();
                }
            }
        }