123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using UnityEngine;
- using System.Collections;
- using UnityEngine.Events;
- using UnityEngine.UI;
- public class MoveScrr : Move
- {
- #region 变量
- protected float Timer;
- protected float Duration;
- protected float Delta;
- protected float Origin;
- protected float Destination;
- protected ScrollRect Target;
- protected CurveFunctionF Func;
- #endregion
- public MoveScrr(ScrollRect target)
- {
- Target = target;
- }
- public override bool DoMove()
- {
- if (Timer > Duration)
- {
- Target.horizontalNormalizedPosition = Destination;
- Timer = 0;
- ManaAnim.MoveList.Remove(this);
- if (OnFinish != null)
- {
- OnFinish.Invoke();
- }
- return true;
- }
- else
- {
- Target.horizontalNormalizedPosition = Func(Timer, Duration, Origin, Delta);
- Timer += Time.fixedDeltaTime;
- return false;
- }
- }
- public void StartMove(float destination, float duration, Curve curve)
- {
- Timer = 0;
- Finish = false;
- Delta = destination - Target.horizontalNormalizedPosition;
- Origin = Target.horizontalNormalizedPosition;
- Duration = duration;
- Destination = destination;
- Func = ManaAnim.FunctionDicF[curve];
- if (OnStart != null)
- {
- OnStart.Invoke();
- }
- ManaAnim.MoveList.Remove(this);
- ManaAnim.MoveList.Add(this);
- }
- }
|