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; } }
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); } }
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); }