Zoom2D.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Zoom2D : Move
  4. {
  5. #region 变量
  6. public float Delta;
  7. public float Timer;
  8. public float Origin;
  9. public float Duration;
  10. public float Destination;
  11. public Vector3 OriginVec;
  12. public Camera Camera;
  13. public Transform Target;
  14. public CurveFunctionF Func;
  15. #endregion
  16. public Zoom2D(Camera camera)
  17. {
  18. Camera = camera;
  19. }
  20. public override bool Do()
  21. {
  22. Timer += Time.fixedDeltaTime;
  23. if (Timer > Duration)
  24. {
  25. Timer = 0;
  26. Camera.orthographicSize = Destination;
  27. return true;
  28. }
  29. else
  30. {
  31. Camera.orthographicSize = Func(Timer, Duration, Origin, Delta);
  32. return false;
  33. }
  34. }
  35. public void StartZoom(float origin, float destination, float duration, float stay, Transform target, Curve curve)
  36. {
  37. OnForwardStart.SafeInvoke();
  38. Origin = origin;
  39. Target = target;
  40. Duration = duration;
  41. Destination = destination;
  42. Func = ManaAnim.CurveFuncDicF[curve];
  43. Delta = destination - origin;
  44. OriginVec = Camera.transform.position;
  45. ManaAnim.MoveList.Remove(this);
  46. ManaAnim.MoveList.Add(this);
  47. Move move = Camera.Move2D(Target.position, duration, false, curve);
  48. move.AddEventOnetime
  49. (
  50. EventType.ForwardFinish,
  51. () =>
  52. {
  53. Auxiliary.Instance.DelayCall
  54. (
  55. () =>
  56. {
  57. Delta = origin - destination;
  58. Origin = destination;
  59. Destination = origin;
  60. ManaAnim.MoveList.Add(this);
  61. Move tempMove = Camera.Move2D(OriginVec, duration, false, curve);
  62. tempMove.AddEventOnetime
  63. (
  64. EventType.ForwardFinish,
  65. () =>
  66. {
  67. OnForwardFinish.SafeInvoke();
  68. }
  69. );
  70. },
  71. stay
  72. );
  73. }
  74. );
  75. }
  76. }