public void StopTransition(ITransitionElement transitionElement, bool visible = false) { ITransitionStatusControl transitionStatusControl = GetTransitionStatusControl(transitionElement); if (transitionStatusControl != null) { StopCoroutine(transitionStatusControl.Coroutine); EndTransition(transitionElement, visible); } }
private void CalculateTransitionPercent(ITransitionElement transitionElement, float percent) { ITransitionStatusControl transitionStatusControl = GetTransitionStatusControl(transitionElement); ITransitionDetails transitionDetails = GetTransitionDetails(transitionElement); if (transitionDetails.TransitionStyle.Contains(TransitionStyle.InOut)) { transitionStatusControl.TransitionPercent = percent / 2 + transitionStatusControl.TransitionPercentBreak; } else { transitionStatusControl.TransitionPercent = percent; } }
private void CleanTransitionTable() { ITransitionElement[] transitionTableKeys = new ITransitionElement[m_TransitionTable.Keys.Count]; m_TransitionTable.Keys.CopyTo(transitionTableKeys, 0); foreach (ITransitionElement transitionElement in transitionTableKeys) { ITransitionStatusControl transitionStatusControl = m_TransitionTable[transitionElement]; if (!transitionStatusControl.InTransition) { m_TransitionTable.Remove(transitionElement); } } }
private IEnumerator PLayFadeAnimation(ITransitionElement transitionElement, float alphaStart, float alphaEnd) { ITransitionStatusControl transitionStatusControl = GetTransitionStatusControl(transitionElement); if (transitionStatusControl != null) { ITransitionDetails transitionDetails = GetTransitionDetails(transitionElement); float lerpValue = 0f; while (lerpValue <= 1f && transitionStatusControl.InTransition) { lerpValue += Time.deltaTime / transitionDetails.TransitionDuration; CalculateTransitionPercent(transitionElement, lerpValue); transitionDetails.TransitionOverlay.alpha = Mathf.Lerp(alphaStart, alphaEnd, transitionDetails.Interpolation.Evaluate(lerpValue)); yield return(null); } } }
public void PlayTransition(ITransitionElement transitionElement, Handler handler = null) { if (!m_TransitionTable.ContainsKey(transitionElement)) { m_TransitionTable.Add(transitionElement, new TransitionStatusControl()); } else { if (GetTransitionStatus(transitionElement).InTransition) { Debug.LogWarning( "[TransitionScene] Element '" + transitionElement.Name + "' already is in transition. Wait for it to finished." ); return; } } if (handler != null) { this.AddObserver(handler, TransitionElementNotificationName(transitionElement)); } ITransitionStatusControl transitionStatusControl = GetTransitionStatusControl(transitionElement); if (transitionStatusControl != null) { transitionStatusControl.Coroutine = SetUpTransition(transitionElement); StartCoroutine(transitionStatusControl.Coroutine); } ITransitionDetails transitionDetails = GetTransitionDetails(transitionElement); if (transitionDetails.TransitionElementChild != null) { PlayTransition(transitionDetails.TransitionElementChild); } }