public void Invoke(UIAnimationFramework effects) { foreach (RectMoveAnimationSingle m in move) { effects.Move(m.rect, m.point, m.time); } foreach (RectScaleAnimationSingle s in scale) { effects.Scale(s.rect, s.point, s.time); } foreach (RectRotateAnimationSingle a in rotate) { effects.Rotate(a.rect, Quaternion.Euler(a.rotation), a.time, a.delay); } foreach (TextFadeAnimationSingle a in textFade) { effects.Fade(a.text, a.color, a.time, a.delay); } foreach (ImageFadeAnimationSingle a in imageFade) { effects.Fade(a.image, a.color, a.time, a.delay); } foreach (ImageFillAnimationSingle a in imageFill) { effects.Fill(a.image, a.value, a.time, a.delay); } foreach (CanvasGroupFadeAnimationSingle a in cg) { effects.Fade(a.cg, a.value, a.time, a.delay); } }
private void Animate() { if (effect == null) { effect = GameObject.FindObjectOfType <UIAnimationFramework>(); } OnStart.Invoke(new UIAnimation.UIAnimationEvent(name, isOpen, id)); if ((moveAnimations.Count + scaleAnimations.Count + rotateAnimation.Count + textFadeAnimations.Count + imageFadeAnimations.Count + imageFillAnimations.Count + canvasGroupFadeAnimation.Count) == 0) { OnEnd.Invoke(new UIAnimation.UIAnimationEvent(name, isOpen, id)); return; } bool first = true; foreach (UIAnimation.RectMoveAnimation move in moveAnimations) { Vector3 point = (isOpen) ? move.open : move.close; float animDelay = (isOpen) ? move.openDelay : move.closeDelay; if (first) { //Only fire OnOver event one time. effect.Move(move.rect, point, time, delay + animDelay, OnOver, curve); first = false; } else { effect.Move(move.rect, point, time, delay + animDelay, null, curve); } } foreach (UIAnimation.RectScaleAnimation scale in scaleAnimations) { Vector3 point = (isOpen) ? scale.open : scale.close; float animDelay = (isOpen) ? scale.openDelay : scale.closeDelay; if (first) { //Only fire OnOver event one time. effect.Scale(scale.rect, point, time, delay + animDelay, OnOver, curve); first = false; } else { effect.Scale(scale.rect, point, time, delay + animDelay, null, curve); } } foreach (UIAnimation.RectRotateAnimation rotate in rotateAnimation) { Vector3 point = (isOpen) ? rotate.open : rotate.close; float animDelay = (isOpen) ? rotate.openDelay : rotate.closeDelay; if (first) { //Only fire OnOver event one time. effect.Rotate(rotate.rect, Quaternion.Euler(point), time, delay + animDelay, OnOver, curve); first = false; } else { effect.Rotate(rotate.rect, Quaternion.Euler(point), time, delay + animDelay, null, curve); } } foreach (UIAnimation.TextFadeAnimation fade in textFadeAnimations) { Color color = (isOpen) ? fade.open : fade.close; float animDelay = (isOpen) ? fade.openDelay : fade.closeDelay; if (first) { //Only fire OnOver event one time. effect.Fade(fade.text, color, time, delay + animDelay, OnOver, curve); first = false; } else { effect.Fade(fade.text, color, time, delay + animDelay, null, curve); } } foreach (UIAnimation.ImageFadeAnimation image in imageFadeAnimations) { Color color = (isOpen) ? image.open : image.close; float animDelay = (isOpen) ? image.openDelay : image.closeDelay; if (first) { //Only fire OnOver event one time. effect.Fade(image.image, color, time, delay + animDelay, OnOver, curve); first = false; } else { effect.Fade(image.image, color, time, delay + animDelay, null, curve); } } foreach (UIAnimation.ImageFillAnimation img in imageFillAnimations) { float value = (isOpen) ? img.open : img.close; float animDelay = (isOpen) ? img.openDelay : img.closeDelay; if (first) { //Only fire OnOver event one time. effect.Fill(img.image, value, time, delay + animDelay, OnOver, curve); first = false; } else { effect.Fill(img.image, value, time, delay + animDelay, null, curve); } } foreach (UIAnimation.CanvasGroupFadeAnimation cg in canvasGroupFadeAnimation) { float visible = (isOpen) ? cg.open : cg.close; float animDelay = (isOpen) ? cg.openDelay : cg.closeDelay; if (first) { //Only fire OnOver event one time. effect.Fade(cg.cg, visible, time, delay + animDelay, OnOver, curve); first = false; } else { effect.Fade(cg.cg, visible, time, delay + animDelay, null, curve); } } }