12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using UnityEngine;
- using System.Collections;
- public class Zoom2D : Move
- {
- #region 变量
- public float Delta;
- public float Timer;
- public float Origin;
- public float Duration;
- public float Destination;
- public Vector3 OriginVec;
- public Camera Camera;
- public Transform Target;
- public CurveFunctionF Func;
- #endregion
- public Zoom2D(Camera camera)
- {
- Camera = camera;
- }
- public override bool Do()
- {
- Timer += Time.fixedDeltaTime;
- if (Timer > Duration)
- {
- Timer = 0;
- Camera.orthographicSize = Destination;
- ManaAnim.MoveList.Remove(this);
- return true;
- }
- else
- {
- Camera.orthographicSize = Func(Timer, Duration, Origin, Delta);
- return false;
- }
- }
- public void StartZoom(float origin, float destination, float duration, float stay, Transform target, Curve curve)
- {
- OnForwardStart.SafeInvoke();
- Origin = origin;
- Target = target;
- Duration = duration;
- Destination = destination;
- Func = ManaAnim.CurveFuncDicF[curve];
- Delta = destination - origin;
- OriginVec = Camera.transform.position;
- ManaAnim.MoveList.Remove(this);
- ManaAnim.MoveList.Add(this);
- Move move = Camera.Move2D(Target.position, duration, false, curve);
- move.AddEventOnetime
- (
- EventType.ForwardFinish,
- () =>
- {
- Auxiliary.Instance.DelayCall
- (
- () =>
- {
- Delta = origin - destination;
- Origin = destination;
- Destination = origin;
- ManaAnim.MoveList.Add(this);
- Move tempMove = Camera.Move2D(OriginVec, duration, false, curve);
- tempMove.AddEventOnetime
- (
- EventType.ForwardFinish,
- () =>
- {
- OnForwardFinish.SafeInvoke();
- }
- );
- },
- stay
- );
- }
- );
- }
- }
|