Zoom2D.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. ManaAnim.MoveList.Remove(this);
  28. return true;
  29. }
  30. else
  31. {
  32. Camera.orthographicSize = Func(Timer, Duration, Origin, Delta);
  33. return false;
  34. }
  35. }
  36. public void StartZoom(float origin, float destination, float duration, float stay, Transform target, Curve curve)
  37. {
  38. OnForwardStart.SafeInvoke();
  39. Origin = origin;
  40. Target = target;
  41. Duration = duration;
  42. Destination = destination;
  43. Func = ManaAnim.CurveFuncDicF[curve];
  44. Delta = destination - origin;
  45. OriginVec = Camera.transform.position;
  46. ManaAnim.MoveList.Remove(this);
  47. ManaAnim.MoveList.Add(this);
  48. Move move = Camera.Move2D(Target.position, duration, false, curve);
  49. move.AddEventOnetime
  50. (
  51. EventType.ForwardFinish,
  52. () =>
  53. {
  54. Auxiliary.Instance.DelayCall
  55. (
  56. () =>
  57. {
  58. Delta = origin - destination;
  59. Origin = destination;
  60. Destination = origin;
  61. ManaAnim.MoveList.Add(this);
  62. Move tempMove = Camera.Move2D(OriginVec, duration, false, curve);
  63. tempMove.AddEventOnetime
  64. (
  65. EventType.ForwardFinish,
  66. () =>
  67. {
  68. OnForwardFinish.SafeInvoke();
  69. }
  70. );
  71. },
  72. stay
  73. );
  74. }
  75. );
  76. }
  77. }