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); }
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); }); } }