public void Play(WindowBase window, List <TransitionInputParameters> parameters, WindowComponentBase root, bool forward, System.Action callback) { if (this.CheckMismatch(window, parameters) == false) { if (callback != null) { callback.Invoke(); } return; } Transition callbacker = null; var maxDuration = 0f; for (int i = 0; i < this.transitions.Count; ++i) { var transition = this.transitions[i]; var d = transition.GetDuration(parameters[i], forward); if (d >= maxDuration) { maxDuration = d; callbacker = transition; } } var tag = root.GetCustomTag(this); if (TweenerGlobal.instance != null) { TweenerGlobal.instance.removeTweens(tag); } for (int i = 0; i < this.transitions.Count; ++i) { var transition = this.transitions[i]; transition.Play(tag, this, window, parameters[i], root, forward, callbacker == transition ? callback : null); } if (callbacker == null && callback != null) { callback.Invoke(); } }
public void SetOutState(List <TransitionInputParameters> parameters, WindowBase window, WindowComponentBase root) { if (this.CheckMismatch(window, parameters) == false) { return; } var tag = root.GetCustomTag(this); if (TweenerGlobal.instance != null) { TweenerGlobal.instance.removeTweens(tag); } var i = 0; foreach (var transition in this.transitions) { transition.SetOutState(parameters[i++], window, root); } }