Ejemplo n.º 1
0
        private void StartFade(FadeState nextState)
        {
            FadeParameters prev = fades[0];

            if (prev.state == nextState)
            {
                return;
            }

            if (fades.Count > 1)
            {
                // A fade is currently in progress. Save off any values where they are now.
                float t = GetCurrentProgress();
                alphaAtFadeStart     = GetCurrentAlpha();
                scaleAtFadeStart     = Mathf.Lerp(scaleAtFadeStart, prev.scale, t);
                zOffsetAtFadeStart   = GetCurrentZOffset();
                highlightAtFadeStart = GetCurrentHighlight();

                // Delete any old fades
                fades.RemoveRange(1, fades.Count - 1);
            }

            FadeParameters nextFade = new FadeParameters(nextState, prev.state);

            fades.Insert(0, nextFade);

            timeAtFadeStart = Time.time;
            buttonActive    = nextFade.buttonActive;

            if (!buttonActive)
            {
                // Collisions are only allowed on active buttons.
                meshCollider.sharedMesh = null;
            }
        }
Ejemplo n.º 2
0
        private void FinishFade()
        {
            // Save values from the completed fade.
            FadeParameters finishedFade = fades[0];

            alphaAtFadeStart     = GetCurrentAlpha();
            scaleAtFadeStart     = finishedFade.scale;
            zOffsetAtFadeStart   = GetCurrentZOffset();
            highlightAtFadeStart = GetCurrentHighlight();

            // remove any old fades
            if (fades.Count > 1)
            {
                fades.RemoveRange(1, fades.Count - 1);
            }

            if (finishedFade.buttonActive)
            {
                MakeMeshCollider();
                meshCollider.sharedMesh = sharedMesh;
                buttonActive            = true;
            }
            if (finishedFade.state == FadeState.Closed)
            {
                Destroy(gameObject);
            }
        }
Ejemplo n.º 3
0
        private bool StartFade(IconState nextState)
        {
            if (state == nextState)
            {
                return(false);
            }

            if (nextState == IconState.Closed && childMenus.Count > 0)
            {
                FadeChildren(IconState.Closed);
            }
            state          = nextState;
            fadeInProgress = true;

            if (nextState == IconState.Closed)
            {
                menuRoot.MarkGraphDirty();
            }

            fadeParameters = new FadeParameters(nextState);

            buttonActive = fadeParameters.buttonActive;
            SetColliderSize(Mathf.Min(boxCollider.size.x, fadeParameters.colliderSize));

            menuRoot.StartFadeOnIcon(this, nextState);
            ConstellationMenuIcon hoverIcon = (menuRoot == null) ? null : menuRoot.GetHoverIcon();
            // Change the background based on the relationship between this icon and the hoverIcon
            var relationship = GetRelationship(hoverIcon);

            tooltipAlpha.FadeTo(GetTooltipAlpha(relationship),
                                ANIMATION_DURATION_SECONDS, Time.time);
            iconBgAlpha.FadeTo(GetBackgroundAlpha(relationship),
                               ANIMATION_DURATION_SECONDS,
                               Time.time);
            decorationLabelAlpha.FadeTo(GetDecorationLabelAlpha(relationship),
                                        ANIMATION_DURATION_SECONDS, Time.time);
            iconScale.FadeTo(SHOWN_ICON_SCALE,
                             ANIMATION_DURATION_SECONDS,
                             Time.time);
            iconAlpha.FadeTo(fadeParameters.alpha,
                             ANIMATION_DURATION_SECONDS,
                             Time.time);
            return(true);
        }