public Tween AnimateAppearance(ChainSegment previousSegment) { Sequence seq = DOTween.Sequence(); seq.Join(wideLinkTop.DOFade(1f, fadeInDuration)); seq.Join(wideLinkBottom.DOFade(1f, fadeInDuration)); var topRectTransform = wideLinkTop.GetComponent <RectTransform>(); var bottomRectTransform = wideLinkBottom.GetComponent <RectTransform>(); seq.Join(topRectTransform.DOAnchorPosY(0, snapDuration).SetEase(Ease.InBack)); seq.Join(bottomRectTransform.DOAnchorPosY(0, snapDuration).SetEase(Ease.InBack)); seq.Join(flatLink.DOFade(1f, snapDuration).SetEase(Ease.InBack)); if (previousSegment) { seq.Join(previousSegment.AddShadow()); } seq.AppendCallback(() => { wideLinkTop.DeactivateObject(); wideLinkBottom.DeactivateObject(); wideLink.ActivateObject(); }); return(seq); }