Ejemplo n.º 1
0
        IEnumerator ScaleIcon(RevealIcon icon, float duration, Vector3 scaleTarget, bool resetPos = false)
        {
            float   timer      = 0;
            Vector3 startScale = icon.rectT.localScale;

            while (timer < duration)
            {
                icon.rectT.localScale = Vector3.Lerp(startScale, scaleTarget, timer / duration);
                yield return(new WaitForFixedUpdate());

                //Debug.Log(timer.ToString() + " " + icon.rectT.localScale.ToString());
                timer += Time.deltaTime;
            }

            icon.rectT.localScale = scaleTarget;

            if (resetPos)
            {
                Vector2 lastPos = Vector2.zero;

                for (int i = 0; i < allIcons.Count; i++)
                {
                    if (!allIcons[i].Equals(icon) && allIcons[i].rectT.anchoredPosition.x > lastPos.x)
                    {
                        lastPos = allIcons[i].rectT.anchoredPosition;
                    }
                }

                lastPos.x += iconGap * 2;
                icon.rectT.anchoredPosition = lastPos;

                allIcons.Remove(icon);
                allIcons.Add(icon);
            }
        }
Ejemplo n.º 2
0
        IEnumerator MoveIcon(bool direction, RevealIcon icon, float duration, float distance)
        {
            float timer           = 0;
            int   directionFactor = direction ? 1 : -1;

            Vector2 startPos = icon.rectT.anchoredPosition;
            Vector2 endPos   = new Vector2(icon.rectT.anchoredPosition.x + (distance * directionFactor), icon.rectT.anchoredPosition.y);

            while (timer < duration)
            {
                icon.rectT.anchoredPosition = Vector2.Lerp(startPos, endPos, timer / duration);
                yield return(new WaitForFixedUpdate());

                timer += Time.deltaTime;
            }

            icon.rectT.anchoredPosition = endPos;

            if (onGoingAnim)
            {
                onGoingAnim = false;
            }
        }
Ejemplo n.º 3
0
        public void RemoveIcon(RevealIcon target, Type targetEntity)
        {
            activeIcons.Remove(targetEntity);
            if (revelationOn)
            {
                StartCoroutine(ScaleIcon(target, animationsDuration, Vector3.zero, true));
            }

            for (int i = 0; i < allIcons.Count; i++)
            {
                if (!allIcons[i].Equals(target))
                {
                    if (allIcons[i].rectT.anchoredPosition.x > target.rectT.anchoredPosition.x)
                    {
                        StartCoroutine(MoveIcon(false, allIcons[i], animationsDuration, iconGap));
                    }
                    else
                    {
                        StartCoroutine(MoveIcon(true, allIcons[i], animationsDuration, iconGap));
                    }
                }
            }
        }
Ejemplo n.º 4
0
 public AnimInfos(AnimActionType _animType, Sprite _targetEntitySprite, RevealIcon _targetIcon)
 {
     animType      = _animType;
     displaySprite = _targetEntitySprite;
     targetIcon    = _targetIcon;
 }