示例#1
0
    public void Init(int id, Vector2 targetPos, int column, int totalNum, Func <int, PhotoWallItem> getItem)
    {
        TargetPos    = targetPos;
        CenterPoints = new List <Vector2>();
        CircleXMin   = new Dictionary <Vector2, float>();
        CircleXMax   = new Dictionary <Vector2, float>();
        ID           = id;
        IsCenter     = false;
        Rect         = GetComponent <RectTransform>();
        NeighborIds  = new List <int>();
        SetName(id.ToString());
        GetNeighborId(id, column, totalNum);

        FadeEffect = gameObject.AddComponent <FadeEffect>();
        Radius     = GetRadius(Rect, _showScale);
        FadeEffect.Init(id, Radius, this, getItem);

        FluctuateEffect = gameObject.AddComponent <FluctuateEffect>();
        FluctuateEffect.Init(id, this, getItem);
    }
示例#2
0
    public void OnPointerDown(PointerEventData eventData)
    {
        float maxScale = 50;
        float time     = 0.1f;

        if (!IsCenter)
        {
            IsCenter = true;

            if (_addCenterAction != null)
            {
                _addCenterAction(ID);
            }

            Sequence quence = DOTween.Sequence();
            quence.Append(Rect.DOScale(maxScale, time));
            quence.Append(Rect.DOScale(_showScale, time));
            quence.OnComplete(() =>
            {
                FadeEffect.PlayNeighbor(ID, 0);
                FluctuateEffect.PlayNeighbor(ID);
            });
        }
        else
        {
            IsCenter = false;

            if (_removeCenterAction != null)
            {
                _removeCenterAction(ID);
            }

            Sequence quence = DOTween.Sequence();
            quence.Append(Rect.DOScale(maxScale, time));
            quence.Append(Rect.DOScale(1, time));
            quence.OnComplete(() =>
            {
                FadeEffect.PlayNeighbor(ID, 1);
            });
        }
    }