예제 #1
0
    private IEnumerator UpdateIconCoroutine(SelectBundle bundle, Vector3 destination, Vector3 scale)
    {
        var icon = bundle.transform;

        icon.SetAsFirstSibling();

        var ogpos = icon.position;
        var ogsc  = icon.localScale;
        var time  = 0.0f;

        while (time < transitionTime)
        {
            var ratio = time / transitionTime;
            icon.position   = Vector3.Lerp(ogpos, destination, ratio);
            icon.localScale = Vector3.MoveTowards(ogsc, scale, ratio);
            time           += Time.deltaTime;
            yield return(null);
        }
        icon.position   = destination;
        icon.localScale = scale;
    }
예제 #2
0
    private void UpdateIcons()
    {
        foreach (var s in selections)
        {
            if (s.coroutine != null)
            {
                StopCoroutine(s.coroutine);
            }
        }

        var selected = PlayerSwitch.instance.selected;
        var count    = selections.Count;

        SelectBundle first      = selections[0];
        int          firstIndex = 0;

        for (var i = 0; i < count; i++)
        {
            if (selections[i].pc == selected)
            {
                first      = selections[i];
                firstIndex = i;
                break;
            }
        }

        first.coroutine = StartCoroutine(UpdateIconCoroutine(first, positionMain, Vector3.one));

        var j = 0;

        for (var i = (firstIndex + 1) % count; i != firstIndex; i = (i + 1) % count)
        {
            first           = selections[i];
            first.coroutine = StartCoroutine(UpdateIconCoroutine(first, positionMain + new Vector3(spacing * (j + 1), 0, 0), Vector3.one * imageScale));
            j++;
        }
    }