コード例 #1
0
        IEnumerator ChangeVisibilityCoroutine(bool visible)
        {
            float maxWidth           = _rectTransform.rect.width;
            float visibleWidthLimit  = maxWidth * 0.05F;
            float targetTextWidth    = (visible ? 0.6F : 1.0F) * maxWidth;
            float targetCounterWidth = maxWidth - targetTextWidth;

            if (visible)
            {
                StartCoroutine(ChangeSizeCoroutine(consumeText, targetTextWidth, maxWidth));
                StartCoroutine(ChangeSizeCoroutine(valueCounter, targetCounterWidth, maxWidth));
            }
            else
            {
                StartCoroutine(ChangeSizeCoroutine(valueCounter, targetCounterWidth, maxWidth));
                StartCoroutine(ChangeSizeCoroutine(consumeText, targetTextWidth, maxWidth));
            }

            while (true)
            {
                yield return(new WaitForEndOfFrame());

                if (visible)
                {
                    if (valueCounter.GetWidth() > visibleWidthLimit)
                    {
                        break;
                    }
                }
                else
                {
                    if (valueCounter.GetWidth() < visibleWidthLimit)
                    {
                        break;
                    }
                }
            }

            valueCounter.gameObject.SetActive(visible);
        }
コード例 #2
0
        bool ChangeSize(HorizontalSizeChanger sizeChanger, float newSize, float step)
        {
            float width = sizeChanger.GetWidth();
            float delta = newSize - width;

            if (Mathf.Abs(delta) > step)
            {
                delta *= Speed * Time.deltaTime;
                sizeChanger.SetWidth(width + delta);
                return(true);
            }
            else
            {
                sizeChanger.SetWidth(newSize);
                return(false);
            }
        }